我想验证用户更改其密码。这个动作结果所需的PasswordChange类有4个属性。其中之一是数据库密码,即时通讯与一个“CurrentPassword”属性进行比较,确保用户只有在知道他们当前的密码时才能更改密码(网站上的标准流程)重新评估ModelState.IsValid属性
问题我有数据库密码是集(如图所示)的ActionResult不过的ModelState内似乎得到所谓在此之前,因此返回的“IsValid的”假,因为它看到数据库密码为“空”的数据库密码设置
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ChangePassword(PasswordChange model)
{
var User = GetPlayer().User;
model.databasePassword = User.Password;
if (ModelState.IsValid)
{
//update the users password
User.Updated = SystemDate.Current();
User.Password = model.newPassword.ToLower();
return Redirect("/Player");
}
else
{
return View(model);
}
}
怎么连后我可以重新评估它,或者让它评估我想要的时间!
这几乎是PasswordChange是什么。它几乎是一个有4个属性的视图模型。 3从页面上的数据库中设置的页面..这并不能解决问题与获得modelstate后验证! – Steve 2011-03-07 21:51:57
好吧,愚蠢的问题,但为什么databasePassword需要是一个模型属性,如果CurrentPassword是? – 2011-03-07 22:01:53
如果您在视图传递回来之后添加内容,它实际上不是视图的模型。这就是为什么我问为什么PasswordChange需要databasePassword。 – 2011-03-07 22:07:15