【发布时间】:2016-06-18 01:29:14
【问题描述】:
我在 SQL、C#、Razor 和 HTML5 中遇到数据格式化问题
在我的数据库中是一个必须代表货币的字段,但是数据类型是小数(18,2),保存到数据库的每个值都保存有小数点。
在我的 DTO 中,类型也是十进制的。
但是,当我给 EditorFor 类型编号时,该字段在加载页面时为空。 当我给 EditorFor 类型 money 时,该字段填充了正确的值,但是它放置了一个逗号而不是小数点,这让它在表单提交时引发验证错误。我必须手动将逗号更改为小数点才能正确提交。
我已经尝试将 EditorFor 的类型设置为 number 并设置 step 属性,但它仍然使我的输入为空。
这是数据库中的记录
这是我认为的记录
这是生成的 html 标记
更新: 我将全球化设置更改为 en-US,这修复了逗号到小数点的问题,但搞砸了我的日期注释,所以我希望数据注释为 nl-NL(或类似)并且数字格式为是美国(或类似)
注意:不允许对数据库的数据类型进行任何更改。
注意:在 Google Chrome 和 Microsoft Edge 上进行调试
【问题讨论】:
-
该字段的模型中的数据类型是什么?
-
它的数据类型是十进制的?因为它可以为空
-
听起来你应该看看全球化设置——不过我不知道它们是否可以单独控制。
-
全球化设置对我来说是新的,我会看看。
-
我在 2 个月前遇到了同样的问题,但我没有找到令人满意的解决方案,但我懒得浏览这个重要的信息来源:johnnyreilly.github.io/jQuery.Validation.Unobtrusive.Native/…
标签: c# sql-server html razor asp.net-mvc-5