我有一个具有大约30个输入属性的Viewmodel,带有十进制正则表达式验证,即:
[RegularExpression(@"\d+(\.\d{1,2})?", ErrorMessage = "Invalid decimal")]
public string strProperty { get; set; }
但是我不想为每个财产重复这个。有没有办法更加集中和干这个。
一个想法是定义“\ d +(。\ d {1,2})?”作为常数。
...谢谢
答案 0 :(得分:2)
想到的一种方式是继承自RegularExpressionAttribute
:
public class DecimalAttribute : RegularExpressionAttribute {
public DecimalAttribute() : base(@"\d+(\.\d{1,2})?") {
this.ErrorMessage = "Invalid decimal";
}
}
然后就变成了:
[Decimal]
public string strProperty { get; set; }
假设您知道自己在做什么,而不能只使用decimal
而不是字符串。