我们使用数据注释设置了 POCO 类。
对于这些类之一,我们使用多个 View 供用户填充他们的所有数据。例如,如果它是一个以用户名和密码作为属性的类,我们将在第一页让用户指定他们的用户名,并在第二页上指定他们的密码。
现在,如果我使用完整的 POCO 类(它要求提供用户名和密码),那么当我们询问 ModelState.IsValid 时,由于尚未提供密码,因此会得到 false,但我们知道密码将是在下一页提供!
我们是否有一种通用的方法来验证模型中应该为其提供值的元素而不是整个模型?我知道我可以从 ModelState 中删除单个项目的错误。
我知道我们可以将模型元素分离出来,为正在执行的条目的每个页面部分提供单独的模型,但这感觉就像我们正在更改基础类以更适合 View 。
问候
杰米
最佳答案
我相信史蒂夫在这里的方法解决了这个问题
http://blog.stevensanderson.com/2010/02/19/partial-validation-in-aspnet-mvc-2/
本质上,他过滤掉了那些没有传入值的键。
关于validation - 使用 ASP.NET MVC 和数据注释验证模型的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4267450/