首页 > 解决方案 > 修复“价格字段必须是数字”。在 Microsoft .NET Core / ASP.NET 教程中

问题描述

假设您已按照 Microsoft 的步骤进行操作

教程:开始使用 ASP.NET Core 中的 Razor 页面

即创建了项目“RazorPagesMovie”

使用 Visual Studio Core 并且您使用的是与默认本地化不同的本地化 - 例如德语的 de-DE。在这种情况下,您将在使用修改电影的“价格”时遇到问题

https://localhost:5001/Movies/Edit?id=1

给出一个错误,比如

“字段价格必须是一个数字。”

要解决此问题

(1)在项目“RazorPagesMovie”中编辑文件

RazorPagesMovie\Pages\Shared\_ValidationScriptsPartial.cshtml

并添加以下行:

<script src="~/lib/cldrjs/dist/cldr.js"></script>
<script src="~/lib/cldrjs/dist/cldr/event.js"></script>
<script src="~/lib/cldrjs/dist/cldr/supplemental.js"></script>

<script src="~/lib/globalize/dist/globalize.js"></script>
<script src="~/lib/globalize/dist/globalize/number.js"></script>
<script src="~/lib/globalize/dist/globalize/date.js"></script>

<script src="~/lib/jquery-validation-globalize/jquery.validate.globalize.js"></script>

(2) 从下载 NodeJS

https://nodejs.org/en/download/

并将 NodeJS 安装为管理用户,例如安装到

C:\Program Files\nodejs

(3) 以管理用户身份打开命令行 cmd.exe 并转到 NodeJS 安装文件夹 - 参见 (2)

cd C:\Program Files\nodejs

并执行

npm install globalize cldrjs jquery-validation-globalize cldr-data iana-tz-data

(4) 将所需的 JavaScript 文件复制到wwwroot\lib项目文件夹

例如,如果

c:\DOTNET\RazorPagesMovie\

是项目文件夹,执行

cd c:\DOTNET\RazorPagesMovie\wwwroot\lib
Xcopy /E /I "C:\Program Files\nodejs\node_modules\globalize" %CD%\globalize
Xcopy /E /I "C:\Program Files\nodejs\node_modules\cldrjs" %CD%\cldrjs
Xcopy /E /I "C:\Program Files\nodejs\node_modules\jquery-validation-globalize" %CD%\jquery-validation-globalize

(5) 构建并运行项目 使用本地小数和组分隔符输入值现在应该可以工作了。

标签: asp.net-core.net-core

解决方案


感谢您在此论坛上分享此解决方案,它可以在未来帮助其他社区成员解决类似问题。

此外,这似乎是一个已知问题:您可能无法在十进制字段中输入十进制逗号。要支持使用逗号 (",") 作为小数点的非英语语言环境和非美国英语日期格式的 jQuery 验证,您必须采取措施使您的应用程序全球化。有关添加小数逗号的说明,请参阅此 GitHub 问题 4076更多详细信息,请查看文章:向 ASP.NET Core Razor 页面添加验证


推荐阅读