首页 > 解决方案 > 当浏览器不在英语操作系统上时如何从数据库中提取正确的十进制格式

问题描述

默认 EditorFor() 将输入字段声明为文本并从数据库中加载值,但使用逗号作为分隔符显示它,因为浏览器在非美国版本的 Windows 上运行,并且在验证表单时它在该字段上失败如果它没有被改变和/或有人用逗号而不是点键入十进制数。

如果我将该字段定义为数字,我会在控制台中收到警告:

@Html.EditorFor(m => m.DecimalNumber, new { htmlAttributes = new { @class = "form-control", @type="number" } })

jquery-3.4.1.js:4817 The specified value "0,00" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?

数据库中的数字是正确的小数(18, 4),使用实体框架6它也在模型中设置,我没有设置Web.Config全球化设置,我不知道点变成了什么昏迷。我可以输入带有点或逗号作为分隔符的十进制数字,并且 jquery validate 对其中任何一个都很满意。

表单加载时如何获取字段中加载的值?我尝试在 Editor 构造函数中添加 @lang="en" 属性,但也没有任何区别。

标签: c#jqueryasp.netrazor

解决方案


推荐阅读