Hallo, ich mache einen einfachen Blog mit Microsoft asp.net MVC Core 2.0 für ein Schulprojekt und habe ein Problem bei der Implementierung von CRUD-Operationen für Artikel aufgetreten. Genauer gesagt habe ich ein Problem nur mit der Methode Artikel bearbeiten. Hier ist mein Controller-Methode ASP.net Core MVC 2.0 Weitergabe von FormEditModel aus Sicht auf Controller
[HttpPost]
[ValidateModelState]
public async Task<IActionResult> EditArticle(ArticleEditServiceModel parameter)
{
parameter.Title = this.html.Sanitize(parameter.Title);
parameter.Content = this.html.Sanitize(parameter.Content);
//var user = this.userManager.GetUserName(User.Identity.Name)
await this.articles.EditAsync(parameter.Id, parameter.Title, parameter.Content);
return RedirectToAction(nameof(Index));
}
Und hier ist mein Service "EditAsync" Methode:
public async Task<bool> EditAsync(int id, string title, string content)
{
var article = await this.db.Articles.Where(a => a.Id == id).FirstOrDefaultAsync();
if (article == null)
{
return false;
}
article.Title = title;
article.Content = content;
await this.db.SaveChangesAsync();
return true;
}
The View:
@model ArticleEditServiceModel
@{
ViewData["Title"] = "Edit Article";
}
<h2>@ViewData["Title"]</h2>
<div class="row">
<div class="col-md-4">
<form asp-controller="Article" asp-action="EditArticle" [email protected] method="post">
<div class="form-group">
<label asp-for="Title"></label>
<input asp-for="Title" class="form-control" />
<span asp-validation-for="Title" class="form-text text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Content"></label>
<input asp-for="Content" required class="form-control" />
<span asp-validation-for="Content" class="form-text text-danger"></span>
</div>
<a asp-controller="Article" asp-action="Index" class="btn btn-default">Back</a>
<button type="submit" formmethod="post" class="btn btn-success">Edit Article</button>
</form>
</div>
</div>
@section Scripts {
@await Html.PartialAsync("_ValidationScriptsPartial")
}
Es findet den richtigen Artikel von Id und gibt Ich habe die zwei Eingabefelder, wo ich den Text bearbeiten kann, aber wenn ich auf die Schaltfläche "Senden" klicke, werden keine Änderungen am Artikel vorgenommen. Ich habe versucht, zu debuggen und herausgefunden, dass die Ansicht ein Null-Modell an die Controller-Post-Methode senden. Ich kann nicht finden, was mit dem Code falsch ist, also dachte ich, dass ich erfahrenere Entwickler für Eingang bitten sollte.