ASP.NET MVC货币/文化问题

本文关键字:文化 问题 货币 NET MVC ASP | 更新日期: 2023-09-27 18:33:20

在我的代码中的许多地方,我使用 ToString c 方法将值转换为货币: .ToString("c")

在我的开发机器上,这根据我的区域设置正确格式化值,因此货币显示如下:£100.00

但是,在生产服务器上,它忽略了 Windows 区域设置,而是默认为基于美国的设置:

$100.00

我在使用日期时间时遇到了类似的问题,但转换为ISO 8601格式。

生产服务器从哪里获取此内容?

ASP.NET MVC货币/文化问题

web.config文件中设置适当的区域性:

<globalization uiCulture="en-GB" culture="en-GB" />

查看这篇文章: http://msdn.microsoft.com/en-uS/library/bz9tc508.aspx

您可以在 ToString 函数中强制 Culture

number.ToString("c", new CultureInfo("en-GB"))

我尝试了此处提到的所有其他解决方案,但一直遇到原始问题中提到的相同问题。

最后,我的问题通过更改应用程序池在 IIS 中的运行对象得到解决。当设置为本地系统时,美元将始终显示为货币,无论我将区域设置为什么或如何修改我的 web.config 文件。

当我将应用程序池更改为以计算机上的任何其他交互式用户身份运行时,它立即开始反映区域设置。