0
我有一個形式編輯我的用戶信息:實體編輯不ASP.NET MVC保存核心
<form asp-action="EditUser" asp-route-returnurl="@ViewData["ReturnUrl"]">
<div class="form-horizontal">
<hr />
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="User.Id" />
<div class="form-group">
<label asp-for="User.Name" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="User.Name" class="form-control" />
<span asp-validation-for="User.Name" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="User.Surname" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="User.Surname" class="form-control" />
<span asp-validation-for="User.Surname" class="text-danger"></span>
</div>
</div>
</div>
</form>
這裏是我的MVC行動:
[HttpPost, ActionName("EditUser")]
[Authorize(Roles = Roles.Root + "," + Roles.Manager)]
public async Task<IActionResult> Edit(string id, string returnUrl = null)
{
if (ModelState.IsValid)
{
try
{
var studentToUpdate = await _dbContext.Users.SingleOrDefaultAsync(s => s.Id == id);
// Try to update user from DB by edited values from form
if (await TryUpdateModelAsync<ApplicationUser>(studentToUpdate, "User.",
s => s.Surname, u => u.Name))
_dbContext.SaveChanges();
return Redirect(returnUrl);
}
}
}
在調試,我可以看到在Request.Form
屬性有新的權利值,但DB實體沒有更新。我怎麼能解決這個問題?
您的斷點是否碰到了行=>'_dbContext.SaveChanges();'? – CodeNotFound
我不知道asp.core與mvc有多不同,但是您的操作不應該在其參數中使用「用戶」變量? – Tiramonium
對於編輯,只需要等待reekeeS。 – TGarrett