ASP.Net表单上的奇怪文化行为

时间:2015-03-30 18:52:24

标签: c# asp.net webforms culture

基于此代码(从Microsoft站点获取/修改)...

int i = 100;
string op = "";

// Creates/Displays a CultureInfo for English in Belize.
CultureInfo bz = new CultureInfo("en-BZ");
op += (i.ToString("c", bz)) + "<br/>";

// Creates/Displays CultureInfo for English in GB.
CultureInfo gb = new CultureInfo("en-GB");
op += (i.ToString("c", gb)) + "<br/>";

// Creates/Displays a CultureInfo for English in the U.S.
CultureInfo us = new CultureInfo("en-US");
op += (i.ToString("c", us)) + "<br/>";

// Creates/Displays a CultureInfo for Danish in Denmark.
CultureInfo dk = new CultureInfo("da-DK");
op += (i.ToString("c", dk)) + "<br/>";

litOutput.Text = op;

请有人解释为什么这是我得到的输出..(注意第3个,据说是美国)

BZ$100.00
£100.00
100,00 €
kr. 100,00

..以及我需要做些什么来解决它。在我认为某人有一个&#34; play&#34;之后,它最近才出现问题。在服务器上。

更新/其他信息

如果我在服务器上的独立应用程序中运行相同的代码,我会得到美国文化的预期结果,只有当代码在ASPNet中运行时,事情才会变得奇怪。

TIA。

1 个答案:

答案 0 :(得分:0)

经过数小时的搜索,在MS页面之后阅读MS页面我终于在注册表中找到了答案。首先想到有人在修补。

HKEY_USERS/.DEFAULT/Control Panel/International下的默认设置已更改,因此国家/地区代码/名称/ ID均指向美国,但格式为欧洲。

将这些值交换为正确的值(通过将国家/地区交换为正确的值,或将格式更改为美式)可解决此问题。

感谢您的帮助。希望这个答案有助于其他人。