【问题标题】:MVC4 Class Data Annotations - How to check that field does not equal a given string?MVC4 类数据注释 - 如何检查该字段不等于给定字符串?
【发布时间】:2014-03-25 15:49:26
【问题描述】:

希望这个标题有意义。本质上,我想在一个类中使用数据注释设置验证,如果其中一个字段(例如称为 Field1)等于给定字符串(即“abc”),则该类将失败。

例如

public class myClass
{
    [Required]
    public string Filed1 {get;set;}    //*** I want validation to fail if this string equals "abc"
}

希望这一切都有意义。有什么想法吗?

谢谢

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    您可以为此使用RegularExpression 属性:

    [RegularExpression("^(?!abc$).*$")]
    

    正则表达式是一个否定的前瞻(基本上检查字符串不是以abc 开头,后跟字符串结尾),然后允许任何其他序列。

    【讨论】:

    • 请注意RegularExpressionAttribute 区分大小写。这仍将允许 ABC、Abc 等。
    • 谢谢,我认为正则表达式可能是要走的路,但我写它们没用。
    • 扩展public class MyValidation : ValidationAttribute { ... } 是另一种方法。 regex 属性的一个好处是,如果您坚持 Microsoft 的指导,它还将验证客户端。
    • 可以在此处找到创建自己的验证属性并与客户端验证集成的示例:stackoverflow.com/questions/4218836/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2014-03-03
    相关资源
    最近更新 更多