asp.net-core - 修复“价格字段必须是数字”。在 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) 构建并运行项目 使用本地小数和组分隔符输入值现在应该可以工作了。
解决方案
感谢您在此论坛上分享此解决方案,它可以在未来帮助其他社区成员解决类似问题。
此外,这似乎是一个已知问题:您可能无法在十进制字段中输入十进制逗号。要支持使用逗号 (",") 作为小数点的非英语语言环境和非美国英语日期格式的 jQuery 验证,您必须采取措施使您的应用程序全球化。有关添加小数逗号的说明,请参阅此 GitHub 问题 4076。更多详细信息,请查看文章:向 ASP.NET Core Razor 页面添加验证
推荐阅读
- cypress - 在赛普拉斯中读取更新的夹具文件
- postgresql - 从 Oracle 函数转换为 postgreSQL 函数
- html - 在html中将鼠标悬停在span中的文本上时显示图片和文本
- android - 使用输入类型编号在 EditText 中设置文本
- checkbox - Oracle Apex 复选框
- python - 浮点类型数据未在双精度类型的 MongoDB 字段中更新(Pymongo)
- azure - 使用 Microsoft Azure tenantId 使用 Microsoft Azure Graph API 查找外部方的域
- django - Django 会话变量在 Stripe Webhook 中不起作用?
- laravel - 服务器中没有 GS-Path 设置问题
- flutter - 错误颤振(186)]未处理的异常:FormatException:意外字符(在字符1处)