我希望在提交之前启用“保存”表单数据。
我希望用户能够保存表单进度,即使表单处于无效状态,然后稍后再回到它。
现在,我唯一的问题是我希望能够使用UpdateModel
方法来更新我的模型。但是,由于表单可能无效或仅部分完成,这将引发错误。
有没有办法注释以下方法,以便在 SAVE 实例中忽略验证?
[HttpPost]
public ActionResult Save(Model values)
{
var model = new Model();
UpdateModel(model);
}
我想节省必须为要保存的元素编写1-1映射 - 这是我的后备选项,但不是很容易维护。
答案 0 :(得分:1)
尝试TryUpdateModel(model)
,应该符合您的需求。
这不会引发异常,它将更新模型,如果存在验证错误,则返回false
。
如果您关心错误,请检查false实例中的ModelState
。
因此,您可以将其用作始终保存更改的内容:
[HttpPost]
public ActionResult Save(Model values)
{
var model = new Model();
TryUpdateModel(model);
model.saveChanges();
}