Настройка культуры для приложения ASP.NET MVC на сервере VS dev и IIS - PullRequest
46 голосов
/ 27 августа 2011

Это более конкретная и понятная версия этого вопроса - Другой формат DateTime для разработки и тестовой среды

В Application_BeginRequest () Метод global.asax.cs в моем проекте ASP.NET MVC есть код:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");

Когда я устанавливаю точку останова для действия контроллера, я вижу следующее значение Thread.CurrentThread.CurrentCulture:

  1. В сервере VS dev - "en-GB"
  2. В IIS - "en-US"

Вопрос в том, какие настройки в IIS ответственны за этои как я могу переопределить это?

Ответы [ 4 ]

125 голосов
/ 27 августа 2011

Вместо установки культуры потока вы можете указать ее в файле web.config следующим образом:

<configuration>
    <system.web>
        <globalization uiCulture="en-GB" culture="en-GB" />
    </system.web>
</configuration>

Это более "правильный" способ указания культуры в ASP.NET.

19 голосов
/ 29 августа 2011

Ну, на самом деле я не нашел, за что отвечает параметр IIS, но я переопределил его в Application_PreRequestHandlerExecute () , и он наконец-то заработал:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
6 голосов
/ 02 апреля 2016

Я думаю, что это хороший вариант - просто позволить клиенту (т.е. пользовательскому агенту / браузеру) решить, какую культуру он хочет.Это можно сделать, установив атрибут culture и uiCulture элемента globalization в web.config на auto.См. «Версия 1».

Вы также можете сделать что-то вроде: Возьмите параметр broswers, но, если не возможно, используйте en-US в качестве запасного значения.См. «Версия 2».

Версия 1:

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

Версия 2:

<configuration>
   <system.web>    
       <globalization culture="auto:en-US" uiCulture="auto:en-US" />
   </system.web>
</configuration>


См. Также эту статью для получения дополнительной информации: Автоопределение и настройка языкового стандарта ASP.NET на основе языкового стандарта браузера

0 голосов
/ 15 февраля 2015

Чтобы установить культуру по умолчанию для вашего приложения в MVC, вы можете легко добавить этот маршрут в ваш RouteConfig класс:

 foreach (var route in routes.Cast<Route>().Where(route =>
 route.GetType() == typeof(MultiLingualRoute)))
             {
                 route.Url = "{language}/" + route.Url;
                 route.Defaults.Add("language", "YOUR-DEFAULT");

             }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...