added asp-controller to editserver.cshtml + using id in edtiserver as hidden
This commit is contained in:
@@ -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
|
||||
|
@@ -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; }
|
||||
}
|
||||
}
|
@@ -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>
|
Reference in New Issue
Block a user