36 messaggi dal 14 dicembre 2005
Buongiorno,
vorrei cambiare la culture della mia applicazione, in base ad una condizione, ma questo cambiamento deve avvenire per tutta l'applicazione.
Ho provato a farlo nel Session_Start del Global.asax:

Dim cultura = System.Threading.Thread.CurrentThread.CurrentCulture

If cultura.ToString.IndexOf("it") = -1 Then
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-GB")
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en-GB")
End If

Ma nelle pagina la culture ritorna a quella definita di default.

E' possibile farlo una volta per tutto il programma o dovrei farlo pagina per pagina?

Grazie per la risposta.
dave
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Dave,

dave11 ha scritto:

E' possibile farlo una volta per tutto il programma o dovrei farlo pagina per pagina?

Sì, è possibile farlo per tutto il programma o, per meglio dire, per ogni richiesta HTTP. Infatti, la Culture è un qualcosa che imposti sul thread corrente, quello che sta elaborando la singola richiesta HTTP in ingresso.
Farlo dal Session_Start non è sufficiente, perché è un evento che si verifica una sola volta, all'inzio della navigazione dell'utente.

Un buon punto per impostare la Culture programmaticamente è nel metodo Application_BeginRequest del global.asax. Questo è un metodo che va in esecuzione per ogni richiesta HTTP gestita dal runtime di ASP.NET e quindi ti dà l'opportunità di eseguire del codice a prescindere da quale fosse la pagina richiesta.

Qui trovi un esempio in cui la Culture viene scelta in base alla sigla della lingua contenuta nell'URL.
http://forums.asp.net/t/1227611.aspx#2207373

Se tu invece hai bisogno di selezionare la Culture in base ad altri criteri, come ad esempio variabili di Sessione, allora l'Application_BeginRequest potrebbe non essere adatto nel tuo caso perché le variabili di sessione vengono acquisite in un evento successivo (AcquireState), come puoi vedere da questa immagine che illustra il ciclo di vita della richiesta HTTP in ASP.NET.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.