Aspnet MVC 4验证十进制数

时间:2014-06-12 15:25:17

标签: c# jquery asp.net-mvc jquery-validate unobtrusive-validation

我在应用程序中遇到一些验证小数的问题。例如,如果我在文本框中写入“14,25”,这对我的文化来说是正确的,那么它将无法通过客户端验证。此外,如果我写入14.25,则删除点并将1425放置在实体属性中,此外,在SaveChanges之后,保存到数据库表的值为999,99。 需要就此问题提出建议。 这与我的另一个问题有关: https://stackoverflow.com/questions/24186365/set-jquery-culture-once-for-the-entire-aplication-possible/24186535#24186535

修改: 代码补充说,就像这样简单,我认为我没有必要,因为这必须是一个常见的问题。

[DisplayFormat( DataFormatString = "{0:n2}", ApplyFormatInEditMode = true )]
        public decimal Peso { get; set; }

@Html.LabelFor(model => Model.Peso)
<div class="input-control text" data-role="input-control">
    @Html.EditorFor(model => Model.Peso)
    @Html.ValidationMessageFor(model => Model.Peso)
</div>

1 个答案:

答案 0 :(得分:2)

尝试使用http://github.com/jquery/globalize中的jQuery全球化插件。

将以下文件添加到/ scripts文件夹:

/scripts/globalize.js
/scripts/cultures/globalize.cultures.js
/sctipts/cultures/globalize.culture.de-DE.js

在BundleConfig.cs中:

bundles.Add(new ScriptBundle("~/bundles/scripts/globalization").Include(
      "~/Scripts/globalize*",
      "~/Scripts/cultures/globalize*"));

在_Layout.cshtml中:

@Scripts.Render("~/bundles/scripts/globalization")