【发布时间】:2012-03-22 04:33:43
【问题描述】:
我在 php 中广泛使用了yii 框架,发现scenarios 非常有用。 总而言之,场景让您对不同的视图有不同的验证标准。
问题
我可以使用 mvc3 内置验证,但对不同的视图有不同的验证标准吗?是否有内置功能?
说明
在一个表单中我只想验证密码的更改,在另一个表单中我只想验证新的用户参数,而另一个地方只需要验证一些详细的数据输入。所有值都存储在同一个表中,但需要不同的输入值集
【问题讨论】:
-
您应该考虑使用强类型视图模型来包装您的数据。这些可以根据需要保存您所需的验证。
-
同意 Travis,如果你想对不同的视图有不同的验证逻辑,你应该为每个视图创建一个单独的视图模型。 asp.net/mvc/mvc3#BM_Model_Validation_Improvements
-
有趣,看来我需要使用 IValidatableObject.. 让我能找到关于它的内容
-
正如每个人都建议为不同的视图使用不同的 ViewModel,这样您的视图是干净的(没有逻辑仅表示)并且您的类(视图模型)承担单一责任。作为建议,您可以尝试 FluentValidation fluentvalidation.codeplex.com
-
好吧,似乎可以选择为每个视图使用不同的视图模型(有点笨重,但逻辑和性能友好性要低得多)。
标签: yii asp.net asp.net-mvc asp.net-mvc-3 validation yii