我有像@Html.TextBoxFor
这样的要求,以逗号分隔格式显示货币,不接受负值且没有特殊字符。在货币不可用的同时,我将此TextBoxFor的值更改为“不可用”。如何在视图中实现,使用十进制验证和支持文本输入?
@Html.TextBoxFor(m => m.SourceCurrencyValue, new { @Value=String.Format("{ViewBag.decimalplace}",Model.SourceCurrencyValue) })
ViewBag.decimalplace
应该是小数位,如2或3。
答案 0 :(得分:0)
您可以使用RegularExpression
- 这个会将小数位数限制为2,但会相应更改。
[RegularExpression(@"^\d+,\d{0,2}$",
ErrorMessage = "Your error message")]
public decimal SourceCurrencyValue { get; set; }
在看到您的评论澄清之后,您可以使用上述想法。 data元素在呈现时会在元素上创建数据属性,如果要在每个视图的基础上执行此操作,为什么不尝试手动设置这些属性:
@{ var regex = string.Format(@"^\d+,\d{{0,{0}}}$", ViewBag.DecimalPlaces); }
@Html.TextBoxFor(model => model.SourceCurrencyValue,
new { data_val_regex_pattern = regex, data_val_regex = "Error message" })
然后根据您传入的数量更改小数位数。