【发布时间】:2017-03-20 21:26:36
【问题描述】:
我有一个带有大约 30 个输入属性的 Viewmodel,带有十进制正则表达式验证,即:
[RegularExpression(@"\d+(\.\d{1,2})?", ErrorMessage = "Invalid decimal")]
public string strProperty { get; set; }
但是,我不想对每个属性都重复此操作。有没有办法对此更加集中和干燥。
一个想法是定义“\d+(.\d{1,2})?”作为一个常数。
谢谢....
【问题讨论】:
-
按照您对
\d+(.\d{1,2})?常量的想法,您可以使用在验证器中备份的正则表达式来实现自定义 ValidationAttribute。 -
如果您的所有属性都应用了相同的验证,那么您的模型似乎很奇怪。你可以创建一个子类型的集合吗?
-
将属性声明为
float或decimal,它将自动发生。
标签: c# asp.net-mvc asp.net-mvc-5