Ich benutze asp.net und möchte es dem Benutzer ermöglichen, die Kultur auf der Website selbst einzustellen. In Master habe ich den folgenden Code eine Sprache Cookie zu setzen:Set Kultur mit Cookie in asp.net, nicht aktualisiert
protected void Page_Load(object sender, EventArgs e) {
if (Request.QueryString["setLanguage"] != null)
{
HttpCookie languageCookie = new HttpCookie("language");
languageCookie.Value = Request.QueryString["setLanguage"];
languageCookie.Expires = DateTime.Now.AddDays(10);
Response.SetCookie(languageCookie);
}
}
in Global.asax verwende ich das Cookie wie folgt aus:
protected void Application_BeginRequest(object sender, EventArgs e) {
HttpCookie languageCookie = System.Web.HttpContext.Current.Request.Cookies["language"];
if (languageCookie.Value != null)
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(language);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(language);
}
}
Das Problem ist, dass, nachdem ich das Cookie mit WarteSet. SetCookie Ich muss die Seite neu laden, um die neue Sprache zu bekommen. Wie kann ich meinen Code erstellen? Wenn der Benutzer eine neue Sprache einstellt, wird die Seite direkt mit der neuen Sprache neu geladen?
Dank! Ich habe es zu Application_BeginRequest verschoben, dachte nicht an diese einfache Lösung. – Martin