Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC3编辑十进制字段和本地化_Asp.net Mvc_Asp.net Mvc 3_Localization_Number Formatting - Fatal编程技术网

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" />