Aspnet MVC 4 验证十进制数

5
我在我的应用程序中遇到了一些验证小数的问题。例如,如果我在文本框中写入“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
请展示一些代码...???? - T McKeown
@TMcKeown,我编辑了问题,谢谢。 - E-Bat
1个回答

3

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

将以下文件添加到/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")

谢谢,我会尝试一下。全球化有NuGet包吗? - E-Bat
我找不到包含 cultures js 文件的 culture 文件夹,看起来它们已经从项目中删除了? - E-Bat
如果这些文件夹不存在,就创建它们。我认为它没有NuGet包。 - Jayvin
我从哪里可以获取globalize.culture.{xxx}.js文件? - E-Bat
1
谷歌文件名,您可以找到它们并下载/保存它们。 - Jayvin
1
这是 jQuery Globalize 的 Nuget 包链接:nuget.org 或者使用命令 Install-Package jquery-globalize 进行安装。 - alexbchr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接