我有必要根据具体的规则来设置当前的语言。我需要访问当前页面和当前用户来做出决定。我查看了文档和上面写着,以便在PageBase上使用InitializeCulture方法。我的项目是使用MVC而不是WebForms,什么是InitializeCulture在MVC中的等价物?
发布于 2014-01-21 14:53:38
您可以实现IAuthorizationFilter并在OnAuthorization中进行检查。在IActionFilter中也可以这样做,但OnAuthorization更早地被调用。您可以访问当前的HttpContext,从那里您可以获得当前的页面数据。
public class LanguageSelectionFilter : IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
// access to HttpContext
var httpContext = filterContext.HttpContext;
// the request's current page
var currentPage = filterContext.RequestContext.GetRoutedData<PageData>();
// TODO: decide which language to use and set them like below
ContentLanguage.Instance.SetCulture("en");
UserInterfaceLanguage.Instance.SetCulture("en");
}
}
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// register the filter in your FilterConfig file.
filters.Add(new LanguageSelectionFilter());
}
}https://stackoverflow.com/questions/21160599
复制相似问题