2012-02-22 13 views
6

Sto utilizzando MVC3 e ho una logica per cambiare la cultura che funziona correttamente. Il mio problema è che sembrano esserci alcuni posti in cui questo cambiamento dovrebbe essere fatto, e non sono sicuro dove sarebbe il posto migliore per farlo.MVC3 modo corretto per cambiare la cultura per ogni richiesta

Alcuni esempi mostrano un override su ogni azione, all'interno di un controller come questo:

protected override void OnActionExecuted(ActionExecutedContext filterContext) 
{ 
    // code to change culture 
} 

considerando che un modo più tradizionale che io sono abituato a vedere lo sta facendo nel file Global.asax come segue:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    // code to change culture 
} 

Qual è il posto consigliato per farlo?

risposta

6

global.asax è il modo corretto di fare ASP.NET. Funziona attraverso framework (webform, dati dinamici, mvc).

+0

Esiste un modo corretto di fermare il codice di cultura di essere chiamato per richieste di cose come immagini, file CSS, JavaScript, ecc – eyeballpaul

+0

Questo in web.config: < system.webServer>< moduli runAllManagedModulesForAllRequests = "false "/> – linkerro

4

Application_BeginRequest va bene. Se imposti la cultura sul thread, l'intera richiesta HTTP verrà eseguita in quella cultura.

Thread.CurrentThread.CurrentCulture = new CultureInfo(myCulture); 
Problemi correlati