允许文本框输入而不带前导零

时间:2011-10-17 19:28:09

标签: asp.net-mvc razor numeric

我有一个ASP.NET Web应用程序,我的视图模型有一个双字段PowerPrice,但如果用户没有输入前导零,则该字段的验证会消失。验证将说"请输入一个数字。"如何让用户输入" .11"而不是要求" 0.11"?这是我的视图和模型代码:

<div class="editor-field">
    @Html.EditorFor(model => model.PowerPrice)
    @Html.ValidationMessageFor(model => model.PowerPrice)
</div>

public double PowerPrice
{
    get;
    set;
}

2 个答案:

答案 0 :(得分:1)

您正在为“Double”类型的对象设置一个非正确类型的值“.11”。它总会失败。

你有几个我可以想到的选择。

或者,

  • 您可以保持代码不变,然后通过客户端代码(如JavaScript或JQuery检测)在客户端保存,所以你说你只是担心像“。12”这样的东西,如果你发现了方案根据您的需要添加前导零或数字。这将确保它到达服务器时的十进制值,并且无需在服务器端解析或更改即可接受。

答案 1 :(得分:0)

我相信这个answer here指出实际的罪魁祸首 - 1.10之前的jQuery.Validation版本有一个破坏的验证正则表达式。根据后面对答案的评论,只需将您的nuget升级(例如jQuery.Validation)到最新版本。

就我而言,从1.9.0.1升级到1.11.1就可以了。根本没有服务器端/模型绑定器/字符串ViewModel更改。