这是一个控制器的动作,我用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