0

クリーンな APS.NET MVC 4 プロジェクトを作成し、このチュートリアルを使用して国際化を試みます。

プロジェクトを実行すると、ベースコントローラーの関数が実行されないため、baseController の使用に問題があります。多分私は何かを実装するのを忘れています...

BaseController

public class BaseController : Controller
    {
        protected override void ExecuteCore()
        {
            string cultureName = null;
            //Attempt to read the culture cookie from Request
            HttpCookie cultureCookie = Request.Cookies["_culture"];
            if (cultureCookie != null)
                cultureName = cultureCookie.Value;
            else
                cultureName = Request.UserLanguages[0]; //obtain it from HTTP

            //Validation culture name
            cultureName = CultureHelper.GetImplementedCulture(cultureName); // This is safe

            //Modify current thread's cultures
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultureName);
            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

            base.ExecuteCore();
        }

    }

ホームコントローラー

public class HomeController : BaseController
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }
}
4

1 に答える 1

0

Initialize代わりにメソッドをオーバーライドしたい場合がありますExecuteCore

説明と解決策は次のとおりです。MVC 4 ベータ版で実行されない基本クラスの ExecuteCore()

于 2013-08-05T17:50:47.087 に答える