2014-01-29 180 views
-1

当我启动我的网站时,我的比利时客户将获得荷兰的当前文化。 使用此代码Thread.CurrentThread.CurrentCulture.ToString()CurrentThread.CurrentCulture显示错误信息

在我的web.config我已经加入这个规则

<system.web> 
    <globalization culture="auto" /> 
</system.web> 

我试图挽救要么国家名称(如比利时,荷兰,法国,...)或根据客户的位置将文化(例如be-NL,nl-NL,fr-FR)纳入数据库。

问题在于有些国家,比如比利时,根本找不到。 我确信,该​​IP位于我希望它是在通过whatismyipaddress.com

+2

谢谢你的信息 – wonko79

+9

wonko79说的是,你没有告诉我们任何关于你的*问题*。对于什么是错的更具体。 – AndyG

回答

0

尝试,而不是该国:

<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/> 
2

没有中立的比利时文化。比利时的中立文化是nl(荷兰)。如果您需要区分比利时和荷兰文化,您需要分别获得比利时的nl-BE和荷兰的nl-NL。这与en-USen-GB是英语的特定文化类似。如果您的用户浏览器只定义了中性文化,那么您运气不好。如果他有nl-BE作为他的本地文化,g.pickardou的答案可能会有所帮助。还请注意,文化和UI文化的价值可能是一个无意义的组​​合,例如,在我的电脑上,我有CurrentCultureen-GBCurrentUICultureen-US。为了让这个更疯狂,我的浏览器拥有本地文化cs-CZ,所以在我的电脑上运行的服务器可以根据当前的上下文获取这些可能的文化。

编辑:根据您的问题更新,您对CurrentCulture如何在ASP.NET中工作有错误的想法。它与您的IP地址无关,只与服务器设置或用户的浏览器设置有关。您当然可以通过覆盖InitializeCulture来进行地址查找,但这通常是一个糟糕的主意。另外,正如我所说的,没有中立的比利时文化 - be-NL不存在。事实上,be是白俄罗斯的中立文化。