视图模型属性在运行时更改了验证规则

时间:2011-04-19 18:48:54

标签: c# model-view-controller validation attributes

我是C#MVC的新手,我正在尝试向表单中使用的视图模型添加一些动态验证检查。例如,我有一个名为FirstName的字符串属性。我可以添加属性StringLength(10)和Required()。

我的问题是,取决于其他字段,FirstName StringLength可能在10到20之间变化,等等。我仍然想要使用MVC验证但能够修改它。我知道属性绑定到类,所以也许我使用了错误的东西。

我想要属性验证的功能,但在运行时可以修改它。这可能吗?

2 个答案:

答案 0 :(得分:1)

属性中的值必须是文字。您仍然可以使用基于属性的验证,但是您需要使用CustomValidation标记并将其指向要使用的方法。如果它依赖于对象中的多个字段,则需要将其放在类而不是属性上。

答案 1 :(得分:0)

似乎您可以通过实现DataAnnotationsModelValidatorProvider在运行时添加验证属性: Dynamic Attributes @ forums.asp.net