繁体   English   中英

十进制验证(数据注释)

[英]Decimal validation (data annotation)

我想将一个十进制值传递给我的控制器。 我将Knockout.js与ASP.NET MVC结合使用。

我认为我有:

@Html.TextBoxFor(x => x.test, new { data_bind = "value: test", @class = "form-control" })
@Html.ValidationMessageFor(x => x.test)

我的ViewModel:

[Required(ErrorMessage = "error")]
[Range(0, Int32.MaxValue)]
public decimal test{ get; set; }

并且我无法通过1.5(带逗号),因为MVC验证不允许我,如果我通过1.5(带点),则控制器没有该值(它通过0),但是如果我通过5是工作。 另外,如果我关闭MVC验证并通过1,5(带逗号),则可以正常工作。

你知道我该如何解决这个问题? 我想用逗号和点传递值。

这将允许正值,并且您可以传递小数。 它验证数字(带或不带小数位)以及逗号1000分隔符。

[RegularExpression(@"^(((\d{1,3})(,\d{3})*)|(\d+))(.\d+)?$",ErrorMessage = "Error")]
[Range(0, Int32.MaxValue)]
public decimal test{ get; set; }

如果要查看与数字有关的其他正则表达式,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM