這是一個控制器的動作,我用AJAX POST方法調用:如何更新ModelState?
[HttpPost]
public ActionResult Add(Comment comment)
{
if (User.Identity.IsAuthenticated)
{
comment.Username = User.Identity.Name;
comment.Email = Membership.GetUser().Email;
}
if (ModelState.IsValid)
{
this.db.Add(comment);
return PartialView("Comment", comment);
}
else
{
//...
}
}
如果用戶登錄,提交表單沒有用戶名和電子郵件領域,所以他們沒有得到通過AJAX調用傳遞。當操作被調用時,ModelStat.IsValid返回false,因爲這兩個屬性是必需的。將有效值設置爲屬性後,如何觸發模型驗證以更新ModelState?
不,這是我第一次嘗試和控制器中的所有其他方法:UpdateModel,ValidateModel,TryValidate。沒有任何工作,我得到一個例外:模型不能更新/驗證或類似的東西。 – frennky 2011-02-01 06:46:29
在這種情況下,爲什麼不使用ViewModel?這將包含您傳遞給Action的所有屬性,無需擔心丟失的內容。 – Jon 2011-02-01 09:38:15