在ASP.NET中设置文化

时间:2010-07-08 21:29:11

标签: c# asp.net culture

我有一个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,根据Session [“lang”]设置文化。 问题是在ChangeLanguage之前调用InitializeCulture。我该如何解决这个问题?

我试图从InitializeCulture中获取asp:Literal控件的类值,如下所示:

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

但它总是返回null。

1 个答案:

答案 0 :(得分:2)

我建议解决这个问题就是使用AJAX。单击语言文字后异步调用您的更改语言功能。