ASP.NET MVC (Content-language http header)

ASP.NET MVC (Content-language http header)

我正在使用 ASP.NET MVC 开发内容网站(国际化)。我使用 web.config(不是客户端浏览器设置)来传送特定区域的内容。

<globalization culture="fr" uiCulture="fr" enableClientBasedCulture="false" />

我没有看到 ASP.net MVC 框架正在自动附加 "Content-language" header,有没有办法做到这一点,如果有,那么怎么做。如果现在我们如何才能最有效地放置自定义代码。

此致。

在您的控制器中,添加:

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

您可以通过为所有控制器创建基础 class 并将其包含在覆盖的 OnActionExecuting 中来将其应用于所有操作。如:

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

然后应将您的控制器更改为使用 MyController 而不是 BaseController 作为它们的基础 class。

您可以将此代码添加到 global.asax.cs

以将其应用于所有操作
protected void Application_BeginRequest(object sender, EventArgs e)        
{
   Response.AddHeader("Content-language", Thread.CurrentThread.CurrentUICulture.Name);
}