3
我在c#中使用MVC3。我已经在Web.Config中添加了这个代码,目标是设置英国格式的格式。MVC 3设置uiCulture不起作用
....
<globalization uiCulture="en-GB" culture="en-GB"/>
</system.web>
不幸的是,文本仍然以美国格式显示。 你能告诉我我在做什么错吗?
我在c#中使用MVC3。我已经在Web.Config中添加了这个代码,目标是设置英国格式的格式。MVC 3设置uiCulture不起作用
....
<globalization uiCulture="en-GB" culture="en-GB"/>
</system.web>
不幸的是,文本仍然以美国格式显示。 你能告诉我我在做什么错吗?
这回复在帖子“Change culture based on a link MVC4”。您需要从BaseController继承Controller,覆盖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());
}
你可以检查Thread.CurrentThread.CurrentUICulture? – free4ride
你如何输出你的字符串? – Remy