Настройка культуры в ASP.NET - PullRequest
0 голосов
/ 09 июля 2010

У меня есть asp: literal:

<asp:Literal id="language" OnClick="changeLangauge" Text="<%$ Resources:Translate, switchLanguage %>" runat="server"/>

При щелчке по нему переключается язык:

public void ChangeLanguage(Object sender, EventArgs e)
{
  string lang = langauge.Attribues["class"];
  language.Attributes.Remove("class");
  if (lang.Equals("fr-CA"))
  {
    language.Attributes.Add("class", "en-US");
    Session["lang"] = "en-US";
  }
  else
  {
    language.Attributes.Add("class", "fr-CA");
    Session["lang"] = "fr-CA";
  }
}

Я переопределил InitializeCulture, чтобы установить культуру на основе сеанса ["языки"].Проблема в том, что InitializeCulture вызывается до ChangeLanguage.Как мне обойти эту проблему?

Я пытался получить значение класса из asp: Literal изнутри InitializeCulture следующим образом:

public void InitializeCulture(..)
{
    ...
    String selectedLanguage = Request.Form["language"]
    ...
}

, но он всегда возвращает ноль.

1 Ответ

2 голосов
/ 09 июля 2010

Мое предложение обойти это - использовать AJAX. Асинхронно вызывайте функцию ChangeLanguage при щелчке языкового литерала.

...