2010-09-21 76 views
0

我有一个带有语言组合的MasterPage,问题是我想在用户启动应用程序时指定默认语言,之后用户可以在语言之间进行更改。我的理解是,我必须重写所有页面上的InitializeCulture方法,问题是,我可以在哪里保存所选语言?当我使用缓存[“文化”],所有启动应用程序的用户共享相同的缓存并覆盖所有登录用户的值。域名的InitializeCulture更改语言

我该怎么做?或者如何在未登录时为单个用户的线程保存数据?

在此先感谢您的帮助。

回答

3

使用Session对象为特定的会话数据,如果你需要坚持的选择超出了会话,你需要将它存储与任何用户数据必须

Session["Culture"] = yourculturevar; 
2

如果你想在本地保存信息到用户的计算机(而不是在登录的用户的服务器上保存数据库中的内容),则可以使用cookie。

设置cookie

private void SetLanguageCookie(string language) 
{ 
    HttpCookie cookie = new HttpCookie("UserSelectedLanguage", language); 
    // Optionally set expiration for cookie 
    cookie.Expires = DateTime.Now.AddDays(30); 
} 

检索一个Cookie

private string GetLanguageCookie() 
{ 
    HttpCookie cookie = Request.Cookies["UserSelectedLanguage"]; 
    return cookie.Value; 
}