我现在遇到的问题是 ASP.NET MVC 验证请求对象,在这种情况下是用户
public ActionResult Edit(User user)
我想要做的是,如果用户的密码留空,不要更新密码,只需使用旧密码,但如果已设置,请更新它。
问题是框架抱怨用户没有密码,即使我更新用户对象,它也会抱怨
public ActionResult Edit(User user)
{
user.Password = "Something";
// more code...
}
显然它对请求对象进行验证,有没有办法在这种情况下跳过验证,或者至少延迟它直到我完成修改用户对象?
这是完整的方法代码
[HttpPost]
public ActionResult Edit(User user)
{
if (string.IsNullOrEmpty(user.Password))
{
var oldUser = db.Users.Single(u => u.Id == user.Id);
user.Password = oldUser.Password;
}
try
{
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View(user);
}
}