2013-02-20 10 views
9

Was ist der Unterschied? Ich möchte Language Dropdown-Auswahl in meiner App implementieren. Wenn also eine ausgewählte Sprache ausgewählt wird, wird eine Thread-Kultur festgelegt und die Seite neu geladen.global.asax Application_AcquireRequestState vs. Application_BeginRequest

Wie so:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); 

wo Einstellungen sollten wie oben verarbeitet werden? Application_AcquireRequestState oder Application_BeginRequest?

dank

+0

Wie rufen Sie die Kulturdaten ab, nachdem ein Benutzer sie festgelegt hat? – ZippyV

+0

Ich könnte es von einem Cookie lesen. so würde "en-US" aus einem Cookie gezogen werden – ShaneKm

Antwort

16

Es hängt von der Art und Weise Sie Ihre Sprache über Anfragen speichern. Wenn Sie eine Sitzung verwenden, um Ihre gewählte Sprache in speichern, sollten Sie Application_AcquireRequestState verwenden, denn seit Application_BeginRequestfrüher im Lebenszyklus könnte das Sitzungsstatusobjekt noch nicht zu diesem Zeitpunkt zur Verfügung steht.

+0

Gute Antwort. Man könnte also sagen (vereinfacht): Culture in Session -> Application_AcquireRequestState/Culture in Cookie -> Application_BeginRequest. – isepise

+0

Aber was ist mit Controller.BeginExecuteCore (ich habe einen BaseController in meinem ASP.NET MVC 5 Projekt)? Ich habe dies verwendet, um meine Kultur (in Cookie gespeichert) – isepise

+0

Nur ein Bauchgefühl, aber es klingt seltsam für mich, etwas mit "Kern" darin zu verwenden. Der Link in der anderen Antwort beschreibt den gesamten Lebenszyklus, ich bin mir sicher, dass ein ausreichender Haken dabei ist. – Jan