我有一个像@Html.TextBoxFor这样的要求,要求以逗号分隔的格式显示货币,不接受负值,也不接受特殊字符。同时,当货币不可用时,我将此TextBoxFor的值更改为“不可用”。如何在视图中实现这一点,使用小数验证并支持文本输入?
@Html.TextBoxFor(m => m.SourceCurrencyValue, new { @Value=String.Format("{ViewBag.decimalplace}",Model.SourceCurrencyValue) })ViewBag.decimalplace应为小数位,如2或3。
发布于 2015-07-09 18:05:19
您可以使用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" })这将根据您传入的小数位数来更改小数位数。
https://stackoverflow.com/questions/31314118
复制相似问题