added asp-controller to editserver.cshtml + using id in edtiserver as hidden

This commit is contained in:
2025-07-30 11:14:17 +02:00
parent b0c99b17cf
commit f24e02c8b4
3 changed files with 46 additions and 25 deletions

View File

@@ -96,23 +96,33 @@ public class ServerController : Controller
[ValidateAntiForgeryToken]
public async Task<IActionResult> EditServer(int id, EditServerViewModel vm)
{
if (ModelState.IsValid)
if (!ModelState.IsValid)
{
var server = await _context.Servers.FindAsync(id);
if (server == null) return NotFound();
server.Name = vm.Name;
server.IPAddress = vm.IPAddress;
server.Type = vm.Type;
await _context.SaveChangesAsync();
_logger.LogInformation("Server '{server}' erfolgreich aktualisiert", server.Name);
return RedirectToAction(nameof(Overview));
return View(vm);
}
return View(vm);
var server = await _context.Servers.FindAsync(id);
if (server == null)
{
return NotFound();
}
server.Name = vm.Name;
server.IPAddress = vm.IPAddress;
server.Type = vm.Type;
try
{
await _context.SaveChangesAsync();
_logger.LogInformation("Server '{server}' erfolgreich aktualisiert", server.Name);
return RedirectToAction(nameof(Overview));
}
catch (Exception ex)
{
_logger.LogError(ex, "Fehler beim Speichern des Servers");
ModelState.AddModelError("", "Fehler beim Speichern");
return View(vm);
}
}
// GET: Server/Details/5

View File

@@ -1,10 +1,19 @@
namespace Watcher.ViewModels;
using System.ComponentModel.DataAnnotations;
public class EditServerViewModel
namespace Watcher.ViewModels
{
public string Name { get; set; } = string.Empty;
public class EditServerViewModel
{
public int Id { get; set; }
public string IPAddress { get; set; } = string.Empty;
[Required(ErrorMessage = "Name ist erforderlich")]
public string Name { get; set; }
public string Type { get; set; } = "VPS";
}
[Required(ErrorMessage = "IP-Adresse ist erforderlich")]
[RegularExpression(@"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$", ErrorMessage = "Ungültige IP-Adresse")]
public string IPAddress { get; set; }
[Required(ErrorMessage = "Typ ist erforderlich")]
public string Type { get; set; }
}
}

View File

@@ -1,4 +1,4 @@
@model Watcher.ViewModels.EditServerViewModel;
@model Watcher.ViewModels.EditServerViewModel
@{
ViewData["Title"] = "Server bearbeiten";
@@ -6,26 +6,28 @@
<h2>Server bearbeiten</h2>
<form asp-action="EditServer" method="post">
<form asp-action="EditServer" asp-controller="Server" method="post">
@Html.AntiForgeryToken()
<input type="hidden" asp-for="Id" />
<div class="mb-3">
<label asp-for="Name"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="IPAddress"></label>
<input asp-for="IPAddress" class="form-control" />
</div>
<span asp-validation-for="IPAddress" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="Type"></label>
<input asp-for="Type" class="form-control" />
<span asp-validation-for="Type" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-primary mt-3">Speichern</button>
<a asp-action="Overview" class="btn btn-secondary mt-3">Abbrechen</a>
</form>
</form>