2015-04-15 31 views
1

我正在使用ASP.NET MVC开发内容站点(国际化)。我使用web.config(不是clientbrowser setttings)来提供区域特定的内容。ASP.NET MVC(Content-language http header)

​​

我没有看到ASP.net MVC框架自动追加“内容语言”头,有没有办法做到这一点,如果是比怎么样。如果现在如何能够最有效地定制代码。

问候。

回答

3

在你的控制器中添加:

Response.AddHeader("Content-language", 
    Thread.CurrentThread.CurrentUICulture.Name); 

,你可以将它应用于所有操作通过为所有的控制器创建一个基类,并包括这重写OnActionExecuting。如:

public class MyController : BaseController 
{ 
    protected override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     Response.AddHeader("Content-language", 
      Thread.CurrentThread.CurrentUICulture.Name); 
     base.OnActionExecuting(filterContext); 
    } 
} 

你的控制器然后应更改为使用的myController的,而不是作为BaseController它们的基类。

+0

谢谢你的代码+1 –

1

,您可以在适用于添加此代码的所有行动的global.asax.cs

protected void Application_BeginRequest(object sender, EventArgs e)   
{ 
    Response.AddHeader("Content-language", Thread.CurrentThread.CurrentUICulture.Name); 
}