我们使用数据注释设置POCO类。
对于其中一个类,我们会为用户填充多个视图以填充其所有数据。例如,如果它是一个具有用户名和密码作为属性的类,我们将在第一页上让用户指定他们的用户名,在第二页上指定他们的密码。
现在,如果我使用完整的POCO类(需要提供用户名和密码),那么当我们询问ModelState.IsValid因为尚未提供密码而得到错误,但我们知道密码将在下一页提供!
我们是否有通用的方法来验证模型中应该提供值的元素而不是整个模型?我知道我可以从ModelState中删除单个项目的错误。
我知道我们可以将模型元素分开,以便为正在执行的条目的每个页面部分分别设置模型,但这感觉就像我们正在更改底层类以适应视图更多。
此致
杰米
答案 0 :(得分:4)
我相信史蒂夫的方法处理这个
http://blog.stevensanderson.com/2010/02/19/partial-validation-in-aspnet-mvc-2/
本质上他过滤掉那些没有传入值的键。
答案 1 :(得分:0)
尝试将验证放在ViewModel类上。每个视图都有自己的ViewModel类。一个用户名,另一个用密码。在收集所需的所有数据之前,请勿使用该模型。