如何在MVC3 Controller中调用UpdateModel之前禁用验证

时间:2012-04-05 16:44:49

标签: asp.net-mvc-3 validation updatemodel

我希望在提交之前启用“保存”表单数据。

我希望用户能够保存表单进度,即使表单处于无效状态,然后稍后再回到它。

现在,我唯一的问题是我希望能够使用UpdateModel方法来更新我的模型。但是,由于表单可能无效或仅部分完成,这将引发错误。

有没有办法注释以下方法,以便在 SAVE 实例中忽略验证?

[HttpPost]
public ActionResult Save(Model values)
{
var model = new Model();
UpdateModel(model);
}

我想节省必须为要保存的元素编写1-1映射 - 这是我的后备选项,但不是很容易维护。

1 个答案:

答案 0 :(得分:1)

尝试TryUpdateModel(model),应该符合您的需求。

这不会引发异常,它将更新模型,如果存在验证错误,则返回false

如果您关心错误,请检查false实例中的ModelState

因此,您可以将其用作始终保存更改的内容:

[HttpPost]
public ActionResult Save(Model values)
{
var model = new Model();
TryUpdateModel(model);

model.saveChanges();

}