问题描述
|
我有一个显示数字的ASP.net MVC网站。我能以某种方式确定用户计算机是否配置为使用逗号或点作为小数点分隔符?
我可以检查Request.UserLanguages中的不同语言,但这对于确定小数点分隔符不是很准确。
解决方法
您可以在这里看到如何从浏览器语言中获取
CultureInfo
-这样您可以
可以像这样使用的“ 0”对象:
var sep = browserCulture.NumberFormat.NumberDecimalSeparator;
参见CultureInfo
和NumberFormatInfo
。
, MVC在处理十进制值时遇到问题。
Haack对此发表了一篇很棒的文章。它向您展示了如何克服这一问题。
, 由于询问的是最终用户的计算机,答案是否定的。不幸的是,网络浏览器无法为您提供此类信息。您可以获取的只是用户的首选语言,但这是通过HTTP Accept-Language标头发送到服务器的浏览器设置。而已。
而且,如果您认为JavaScript是否能为您提供解决方案,那么答案也不是。它在沙箱中运行,因此无法访问操作系统。
我不确定Flash是否可以(可能)访问此类信息,但是最终用户可能会阻止它。 ActiveX控件也是如此,而且它不是跨平台的。
因此,坚持使用从Web浏览器检测到的区域性并相应地设置格式号,这样就更容易了(尽管它不支持最终用户对OS设置的修改)。