我想将十进制值传递给我的控制器。我使用带有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(使用逗号),它就可以工作。
你知道我怎么能解决这个问题? 我想用逗号和点传递值。
答案 0 :(得分:0)
这将允许正值,您可以传递小数。它验证带或不带小数位的数字和逗号1000分隔符。
[RegularExpression(@"^(((\d{1,3})(,\d{3})*)|(\d+))(.\d+)?$",ErrorMessage = "Error")]
[Range(0, Int32.MaxValue)]
public decimal test{ get; set; }
如果您想查看与数字相关的其他正则表达式,请查看here。