我想更新用户个人资料。为此,我在Web api中编写了“更改配置文件”方法。由于“ UpdateAsync ”始终返回null,因此我在更新用户数据时遇到问题。
[HttpPost]
[Route("api/ChangeProfile")]
[ResponseType(typeof(AccountModel))]
public async Task<IHttpActionResult> ChangeProfile([FromBody]AccountModel model)
{
var userStore = new UserStore<ApplicationUser>(new ApplicationDbContext());
var manager = new UserManager<ApplicationUser>(userStore);
var user = await manager.FindByNameAsync(model.UserName);
if (user != null)
{
var updateUser = new ApplicationUser()
{ UserName = model.UserName,
Email = model.Email,
FirstName = model.FirstName,
LastName = model.LastName,
};
IdentityResult result = await manager.UpdateAsync(updateUser);
return Ok(result);
}
else
{
return NotFound();
}
}
帐户模型:
public class AccountModel
{
public string UserName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string LoggedOn { get; set; }
public string Roles { get; set; }
}
欢迎任何帮助或建议。
答案 0 :(得分:2)
首先,您需要进一步调试。
此外,必须创建从数据库中检索到的用户的字段,而不是创建新的AplicationUser。
if (user != null)
{
user.UserName = model.UserName,
user.Email = model.Email,
user.FirstName = model.FirstName,
user.LastName = model.LastName,
};
IdentityResult result = await manager.UpdateAsync(updateUser);
return Ok(result);
}
致谢。