Asp.net mvc MVC3编辑十进制字段和本地化
我的语言环境使用逗号Asp.net mvc MVC3编辑十进制字段和本地化,asp.net-mvc,asp.net-mvc-3,localization,number-formatting,Asp.net Mvc,Asp.net Mvc 3,Localization,Number Formatting,我的语言环境使用逗号,,而不是点作为十进制分隔符 在MVC3中,当我打开一个编辑视图,其中十进制值显示为 @Html.EditorFor(model => model.MyDecimalVal) 该值显示正确 当我用逗号输入值时,会出现错误“值不是数字”,如果我用点输入值,则不会出现错误,但实际上不会保存任何值 如何处理这种情况?建议覆盖默认的jQuery验证数字和范围规则,以便启用客户端对逗号-小数分隔符的支持 为了解决这些问题,我们可以从 range()和number()函数的jqu
,
,而不是点
作为十进制分隔符
在MVC3中,当我打开一个编辑视图,其中十进制值显示为
@Html.EditorFor(model => model.MyDecimalVal)
该值显示正确
当我用逗号输入值时,会出现错误“值不是数字”,如果我用点输入值,则不会出现错误,但实际上不会保存任何值
如何处理这种情况?建议覆盖默认的jQuery验证数字和范围规则,以便启用客户端对逗号-小数分隔符的支持
为了解决这些问题,我们可以从
range()和number()函数的jquery.validate.js文件。我们
然后创建另一个.js文件(比如jQueryFixes.js),我们可以在其中
将这些默认函数替换为包含对
逗号用作十进制分隔符。文件的内容应该是
大概是这样的:
$.validator.methods.range=函数(值、元素、参数){
var globalizedValue=value.replace(“,”,“);
返回此值。可选(元素)| |(globalizedValue>=param[0]&&globalizedValue通过调整验证逻辑来解决此问题已经解释过了,因此这里有一种不同的方法
如果要将区域性设置为en
,请将以下代码放在web.config文件的
节点下。它将处理十进制分隔符:
<globalization culture="en-US" uiCulture="en" />
我不确定,但对于DateTime
,您仍然绑定到服务器的区域设置。谢谢,这同时考虑了DateTime和数字格式(但强制使用en-locale)@bzamfir是的。我称之为临时解决方案。永久解决方案是配置您的服务器区域设置。这到底是一个什么样的解决方案-强制使用英语?@gangelo当最终用户不关心特定于文化的值时,我非常确定这是一个非常好的解决方案!这绝对是很棒的。哟你救了我一天,谢谢。有什么合适的方法可以做到这一点吗?我的意思是,在不同的文化中处理不同的十进制值怎么样?当然,我只想把这些值存储在一种文化中,但我想给网页的访问者一个机会,在他的文化中输入并验证十进制值。@Christoph Brückmann,我来晚了一点但这个解决方案是可行的,法语是140.44美元,英语是140.44美元。
<globalization culture="en-US" uiCulture="en" />