我想驗證用戶更改其密碼。這個動作結果所需的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