我有根据具体规则设置当前语言的需求。我需要访问当前页面和当前用户才能做出决定。我查看了文档,它说要在 PageBase 上使用 InitializeCulture 方法。我的项目使用的是 MVC 而不是 WebForms,MVC 中 InitializeCulture 的等价物是什么?
问问题
1425 次
1 回答
4
您可以实现 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());
}
}
于 2014-01-21T14:53:38.467 回答