dyg*_*ygo 46 c# iis asp.net-mvc
这是这个问题的更具体和更清晰的版本 - 开发和测试环境的不同DateTimeFormat
在我的ASP.NET MVC项目中的global.asax.cs 的Application_BeginRequest()方法中有代码:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
Run Code Online (Sandbox Code Playgroud)
当我在Controller Action上设置断点时,我看到Thread.CurrentThread.CurrentCulture的以下值:
问题是 - IIS中的哪些设置对此负责,如何覆盖它?
vcs*_*nes 125
您可以在web.config中指定它,而不是设置Thread的文化,如下所示:
<configuration>
<system.web>
<globalization uiCulture="en-GB" culture="en-GB" />
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是在ASP.NET中指定文化的更"恰当"的方式.
dyg*_*ygo 19
好吧,我实际上并没有找到IIS设置的责任,但我已经在Application_PreRequestHandlerExecute()中重写了它,它终于工作了:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
Run Code Online (Sandbox Code Playgroud)
我认为让客户端(即用户代理/浏览器)决定他想要的文化是一个很好的选择.这可以通过将web.config中元素的cultureand uiCulture属性设置为来完成.请参阅"版本1".globalizationauto
您还可以执行以下操作:执行broswers设置,但如果不可能则使用en-US后备值.请参阅"版本2".
版本1:
<configuration>
<system.web>
<globalization culture="auto" uiCulture="auto"/>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
版本2:
<configuration>
<system.web>
<globalization culture="auto:en-US" uiCulture="auto:en-US" />
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此文章:基于浏览器区域设置自动检测和设置ASP.NET区域设置
| 归档时间: |
|
| 查看次数: |
56448 次 |
| 最近记录: |