我向ApplicationUser
类添加了自定义字段,
还创建了一种表单,用户可以通过该表单输入/编辑字段。
但是由于某种原因,我无法更新数据库中的字段。
[HttpPost]
[ActionName("Edit")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Manage(EditProfileViewModel model)
{
if (ModelState.IsValid)
{
// Get the current application user
var user = User.Identity.GetApplicationUser();
// Update the details
user.Name = new Name { First = model.FirstName, Last = model.LastName, Nickname = model.NickName };
user.Birthday = model.Birthdate;
// This is the part that doesn't work
var result = await UserManager.UpdateAsync(user);
// However, it always succeeds inspite of not updating the database
if (!result.Succeeded)
{
AddErrors(result);
}
}
return RedirectToAction("Manage");
}
我的问题类似于MVC5 ApplicationUser自定义属性,但似乎使用了较旧的Identity版本,因为IdentityManager类似乎不存在。
有人可以指导我如何更新User
数据库中的信息吗?
更新:如果我将所有字段都包含在注册表中,则所有值都存储在Users
数据库中表的新记录中的相应字段中。
我不知道要更改现有用户的字段(users
表中的行)。UserManager.UpdateAsync(user)
不起作用。
还要注意我的问题比EntityFramework更面向身份