1

特定のルールに従って現在の言語を設定する必要があります。意思決定を行うには、現在のページと現在のユーザーにアクセスする必要があります。ドキュメントに目を通したところ、PageBase で InitializeCulture メソッドを使用するように言われました。私のプロジェクトは WebForms ではなく MVC を使用しています。MVC の InitializeCulture に相当するものは何ですか?

4

1 に答える 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 に答える