【发布时间】:2016-04-19 13:04:56
【问题描述】:
在回发时如何正确验证价格字段? 我已经检查过:How can I validate a currency field?,但这并没有达到我的期望。
我已经尝试过(以及一些变体):
[Range(0, (double)decimal.MaxValue)]
[DataType(DataType.Currency, ErrorMessage = "...")]
public decimal? Price {get; set;}
问题:
- 它从不使用 [DataType...] 属性来执行验证。
- 当使用的值不是十进制类型时,发出的验证错误将是一个标准的英文消息,我不知道如何自定义并且需要。
- 如果我将其设为字符串而不是十进制?,那么对于非十进制或负值,范围验证将被抛出,但它仍将允许以下值:1.23456,这不是我所期望的货币格式。
在我必须创建自己的自定义验证或正则表达式之前,我正在寻找一种内置方法。比如:
[EmailAddress()]
public string ContactEmail {get; set; }
这非常适合我!
【问题讨论】:
-
你想要什么验证?
-
通常的货币值(不包括货币符号)。例如:9.99、0.80、128.50。在伪正则表达式中:d*[.d[d]]。只是如果已经存在内置解决方案,我不想自己制作它。
-
您的意思是要将输入限制在小数点后两位吗? (如果是这样,您可以随时使用
RegularExpressionAttribute)
标签: c# validation asp.net-mvc-5 model-validation