3

私はc#でMVC3を使用しています。のフォーマットを英国フォーマットに設定することを目的として、このコードをWeb.Configに追加しました。

....
        <globalization uiCulture="en-GB" culture="en-GB"/>
    </system.web>

残念ながら、テキストはまだ米国形式で表示されています。ここで私が間違っていることを教えていただけますか?

4

1 に答える 1

1

これは、「リンクMVC4に基づいて文化を変える」という投稿で回答されました。コントローラをBaseControllerから継承し、BaseControllerのInitializeメソッドをオーバーライドして、Cookieを使用する必要があります。これは私のコードではありませんが、リンクが壊れた場合:

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
    HttpCookie languageCookie = System.Web.HttpContext.Current.Request.Cookies["Language"];
    if (languageCookie != null)
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo(languageCookie.Value);
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(languageCookie.Value);
    }
    else
    {
    //other code here
    }

    base.Initialize(requestContext);
}

<li>@Html.ActionLink("Eng", "ChangeCulture", "Home", new { lang="en-US"}, new { @class = "languageSelectorEnglish" })</li>

public void ChangeCulture(string lang)
{
    Response.Cookies.Remove("Language");

    HttpCookie languageCookie = System.Web.HttpContext.Current.Request.Cookies["Language"];

    if (languageCookie == null) languageCookie = new HttpCookie("Language");

    languageCookie.Value = lang;

    languageCookie.Expires = DateTime.Now.AddDays(10);

    Response.SetCookie(languageCookie);

    Response.Redirect(Request.UrlReferrer.ToString());
}
于 2015-02-03T15:20:43.440 に答える