2010-11-24 47 views
4

我们使用数据注释设置了POCO类。使用ASP.NET MVC&Data Annotations验证模型的部分

对于其中的一个类,我们调用多个视图以供用户填充所有数据。例如,如果它是一个具有用户名和密码作为属性的类,我们将在第一页上让用户指定他们的用户名,并在第二页上指定他们的密码。

现在,如果我使用完整的POCO类(它要求同时提供两个用户名&密码),那么当我们要求ModelState.IsValid获得false时,因为密码尚未提供,但我们知道密码将在下一页提供!

有没有一种通用的方法来验证模型中应该提供值而不是整个模型的那些元素?我知道我可以从ModelState中删除单个项目的错误。

我知道我们可以分离出模型元素,为正在执行的条目的每个页面部分分别创建模型,但这种感觉就像我们正在改变底层类以更适合视图。

问候

杰米

回答

0

尝试把验证的视图模型类。每个视图都有自己的ViewModel类。一个用户名,另一个用密码。在收集您需要的所有数据之前,不要使用该模型。

+0

但是在那里存在对我的问题。我们已经指定了POCO课程所需的验证,我们是不是通过将其放在其他课程上来复制此活动?我明白我们实际上可以将事情分解出来,但是模型通过注释指定了什么是必需的,哪些不是。 – jamie 2010-11-24 14:22:00