我正在研究MVC 4项目。我在单个属性上遇到多个自定义验证属性的问题。假设我有3个自定义验证属性用于单个属性,例如:
public class Test
{
[customAttribute1]
[customAttribute2]
[customAttribute3]
public string property1 { get; set; }
}
目前,当我发布他的表单时,所有三个自定义验证都在该属性上执行(无论是第一次验证通过还是失败)。
我想要的是customAttribute1
验证失败,而不需要使用下一个自定义属性验证属性。我怎样才能做到这一点?
答案 0 :(得分:1)
此行为的一点是返回(向UI)模型中的所有错误,因此用户可以同时修复所有错误...
假设您希望密码最少为8个字符且至少包含大写和数字。您希望验证运行的方式是,如果密码不够长而不检查其余部分,则停止运行。典型用例场景:
User sets password "foo" -> submit
error - Password too short
User sets it to "foofoofoo"
error - Password must have an uppercase
User sets it to "FooFooFoo"
error - Password must have a number
User goes away frustrated...
因此,如果要同时验证3个属性,我的建议是保持这种行为。如果3是独占的,那么按照其他人的建议做,并将它们组合成一个属性。
答案 1 :(得分:0)