Aspnet MVC 4 验证十进制数

E-B*_*Bat 5 c# asp.net-mvc jquery jquery-validate unobtrusive-validation

我在应用程序中验证小数时遇到一些问题。例如,如果我在文本框中写入“14,25”(这对于我的文化而言是正确的),则客户端验证会失败。另外,如果我写 14.25,点将被删除,1425 将被放置在实体属性中,而且,在 SaveChanges 后,保存到数据库表的值是 999,99。需要关于这个问题的建议。这与我的其他问题相关: /sf/ask/1693045581/#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>
Run Code Online (Sandbox Code Playgroud)

小智 3

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

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

/scripts/globalize.js
/scripts/cultures/globalize.cultures.js
/sctipts/cultures/globalize.culture.de-DE.js
Run Code Online (Sandbox Code Playgroud)

在 BundleConfig.cs 中:

bundles.Add(new ScriptBundle("~/bundles/scripts/globalization").Include(
      "~/Scripts/globalize*",
      "~/Scripts/cultures/globalize*"));
Run Code Online (Sandbox Code Playgroud)

在_Layout.cshtml中:

@Scripts.Render("~/bundles/scripts/globalization")
Run Code Online (Sandbox Code Playgroud)