首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Html.TextBoxFor验证

@Html.TextBoxFor验证
EN

Stack Overflow用户
提问于 2015-07-09 17:55:15
回答 1查看 4.3K关注 0票数 2

我有一个像@Html.TextBoxFor这样的要求,要求以逗号分隔的格式显示货币,不接受负值,也不接受特殊字符。同时,当货币不可用时,我将此TextBoxFor的值更改为“不可用”。如何在视图中实现这一点,使用小数验证并支持文本输入?

代码语言:javascript
复制
@Html.TextBoxFor(m => m.SourceCurrencyValue, new { @Value=String.Format("{ViewBag.decimalplace}",Model.SourceCurrencyValue) })

ViewBag.decimalplace应为小数位,如2或3。

EN

回答 1

Stack Overflow用户

发布于 2015-07-09 18:05:19

您可以使用RegularExpression -这将把小数位数限制为2,但会相应地更改。

代码语言:javascript
复制
[RegularExpression(@"^\d+,\d{0,2}$", 
     ErrorMessage = "Your error message")] 
public decimal SourceCurrencyValue { get; set; }

在看到你的评论后,你可以使用上面的想法。data属性在呈现元素时在元素上创建数据属性,如果您希望在每个视图的基础上执行此操作,为什么不尝试手动设置这些属性:

代码语言:javascript
复制
@{ 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" })

这将根据您传入的小数位数来更改小数位数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31314118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档