我正在使用ASP.NET MVC 2的数据注释,如本文所示:
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
创建/更新实体时,一切正常,其中所有必需的属性值都在表单中指定并且有效。
但是,如果我只想更新某些字段怎么办?例如,假设我有一个包含20个字段的帐户实体,但我只想更新用户名和密码?
ModelState.IsValid对所有属性进行验证,无论它们是否在提交的表单中被引用。
如何让它仅验证表单中引用的字段?
答案 0 :(得分:2)
建议的做法是使用特定于每个视图的模型。在您的情况下,这将是一个只有用户名和密码属性的模型。当用户提交表单时,您将属性映射到控制器中的实际域对象。为此,我使用Automapper来简化映射。这确实意味着您需要在每个视图模型中设置验证规则。
答案 1 :(得分:2)