十进制验证(数据注释)

时间:2015-04-09 07:10:07

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 knockout.js

我想将十进制值传递给我的控制器。我使用带有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),但是如果我通过了它的工作。 此外,如果我关闭MVC验证并传递1,5(使用逗号),它就可以工作。

你知道我怎么能解决这个问题? 我想用逗号和点传递值。

1 个答案:

答案 0 :(得分:0)

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

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

如果您想查看与数字相关的其他正则表达式,请查看here

相关问题