我应该在哪里放置Response.AddHeader方法?

时间:2014-07-29 14:08:57

标签: asp.net-mvc

我知道这是一个愚蠢的问题,但我不是它的专家。

我正在关注这个问题

http://www.joshuawinn.com/fix-html5-validator-error-bad-value-x-ua-compatible-for-attribute-http-equiv-on-element-meta/

我想添加代码

Response.AppendHeader("X-UA-Compatible", "IE=edge,chrome=1");

到我的Asp Net MVC项目。我应该把它放在哪里?

我找到了关于它的这个页面

http://msdn.microsoft.com/en-us/library/ms524327(v=vs.90).aspx

建议使用

<% Response.AddHeader "CustomHeader", "CustomValue" %> 

但我不知道应该把它放在哪里。我已经尝试了

<HTML> 
Here's some text on your Web page. 
' This header tells proxy servers using HTTP/1.0 not to cache this request. 
<% Response.AddHeader "Pragma", "no-cache" %> 
<% Response.Flush %>  
<% Response.Write("Pragma is set to no-cache") %>  
</HTML> 

但这不起作用。

2 个答案:

答案 0 :(得分:0)

您应该在为您的页面提供服务的ActionResult中添加标题,例如:。

    public ActionResult Index()
    {
        HttpContext.Response.AddHeader("Pragma", "no-cache");
        return View();
    }

如果您希望在多个请求中添加此标头,则可以按照this答案将代码包装在自定义操作过滤器中。

答案 1 :(得分:0)

我建议您不要将它放在处理程序中,而是为整个网站执行一次,这样您就不再需要这样做了。您可以通过将其添加到web.config文件来完成此操作:

<configuration>
  <system.webServer>
     <httpProtocol>
        <customHeaders>
           <add name="X-UA-Compatible" value="IE=Edge,chrome=1" />
        </customHeaders>
     </httpProtocol>
  </system.webServer>
</configuration>

或者您可以将其添加为IIS提供的自定义标头。使用此页面作为指南:

Add a Custom HTTP Response Header