首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 3设置uiCulture不起作用

MVC 3设置uiCulture不起作用
EN

Stack Overflow用户
提问于 2013-01-16 23:19:41
回答 1查看 813关注 0票数 3

我在c#中使用MVC3。我已经在Web.Config中添加了这段代码,目的是设置英国格式的格式。

代码语言:javascript
复制
....
        <globalization uiCulture="en-GB" culture="en-GB"/>
    </system.web>

不幸的是,文本仍然以US格式显示。你能告诉我我哪里做错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 23:20:43

这个问题在"Change culture based on a link MVC4“一文中得到了回答。您需要从BaseController继承控制器,重写BaseController的Initialize方法,并使用cookie。这不是我的代码,但以防链接中断:

代码语言:javascript
复制
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);
}

代码语言:javascript
复制
<li>@Html.ActionLink("Eng", "ChangeCulture", "Home", new { lang="en-US"}, new { @class = "languageSelectorEnglish" })</li>

使用

代码语言:javascript
复制
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());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14361709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档