Изменение культуры ASP.NET на основе динамического значения - PullRequest
0 голосов
/ 17 марта 2011

У меня есть веб-приложение, которое отслеживает финансовые данные. Я хотел бы иметь возможность, где пользователь может редактировать свою валюту через выпадающий список. Различные типы валют будут храниться в базе данных, и пользователь затем сможет выбрать, какую валюту он хочет использовать. Проще всего увидеть, как это сделать, - проверить значение валюты и динамически изменить культуру в соответствии с валютой, поэтому я могу продолжать использовать string str = String.Format("{0:C}", revenue); формат. Я открыт для других предложений, но мне это показалось наиболее логичным. Как я могу справиться с этим?

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Возможно, вы могли бы сделать это несколькими способами.

  1. Передайте предполагаемую культуру в качестве первого параметра ваших String.Format вызовов, например,

    string str = string.Format (CultureInfo.CurrentCulture, "{0: C}", доход);

  2. Изменить стандартную культуру потока, обрабатывающего запрос:

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

Второй вариант необходимо будет выполнить в начале каждого запроса, и он позволит вам автоматически использовать эту культуру с вашими форматами и синтаксическим анализом, но вы должны позаботиться о том, чтобы любой код, обрабатывающий ответ пользователя делает это в соответствии с культурой по умолчанию (которую вы будете заменять).

0 голосов
/ 22 марта 2011

Я нашел самый простой способ сделать это - создать базовый класс, который наследует страницу.Тогда это простое переопределение функции InitializeCulture ().

Спасибо за помощь, ребята!

...