안녕하세요, 학교 프로젝트에 Microsoft asp.net MVC Core 2.0을 사용하는 간단한 블로그를 만들고 기사에 CRUD 작업을 구현하는 동안 문제가 발생했습니다. 더 정확하게 나는 편집 기사 방법으로 만 문제가 있습니다. 여기 내 컨트롤러 방법 ASP.net Core MVC 2.0보기에서 컨트롤러로 FormEditModel 전달
[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));
}
입니다 그리고 여기 내 서비스 "EditAsync"방법 :
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;
}
보기 :
@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")
}
그것은 ID로 정확한 기사를 찾아 준다 나에게 텍스트를 편집 할 수있는 두 개의 입력 필드가 있지만 제출 버튼을 클릭하면 기사에 적용된 변경 사항이 없습니다. 나는 디버깅을 시도하고 뷰가 컨트롤러 모델 포스트에 널 모델을 보낸다는 것을 알았다. 코드에 무엇이 잘못되었는지를 알 수 없어서 경험 많은 개발자에게 입력을 요청해야한다고 생각했습니다.