Non sono a conoscenza di alcun filtro che imposta l'attributo, ma puoi sicuramente scrivere un filtro di azione per fare lo stesso.
Se la cultura è stato risolto attraverso il routing, utilizzare il seguente codice:
using System.Globalization;
using System.Threading;
using System.Web.Mvc;
public class CultureAttribute : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext) {
string language = (string)filterContext.RouteData.Values["language"] ?? "en";
string culture = (string)filterContext.RouteData.Values["culture"] ?? "US";
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
}
}
Se avete informazioni cultura impostato nelle variabili di sessione di questo codice:
using System.Globalization;
using System.Threading;
using System.Web.Mvc;
public class CultureAttribute : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext) {
string language = (string)filterContext.HttpContext.Session.Contents["language"] ?? "en";
string culture = (string)filterContext.HttpContext.Session.Contents["culture"] ?? "US";
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
}
}
fonte
2015-04-23 13:29:11
Avete un esempio di il codice per il menu, o forse un URL per la pagina interessata? – JDandChips
Mi spiace che l'URL non sia ancora pubblico. Non esiste un codice speciale per il menu, solo un menu "tedesco" e un menu "inglese" a seconda della cultura corrente. sembra proprio che i controllori non "pubblichino" la cultura, quindi non esiste una cultura impostata per la vista restituita dal controller. Forse c'è un attributo come '[Themed]' ma per cultura ... –
Come viene risolta la cultura nella tua applicazione? È impostato tramite la tabella di routing e risolto dall'indirizzo? –