ASP.NET忽略Web.config中的IE7兼容模式标记

时间:2009-07-30 20:34:18

标签: c# asp.net internet-explorer-8 cross-browser

我的Web.config文件中有以下部分

<system.webServer>
    <!-- For now..... lets be safe and put IE8 in IE7 compatibility mode-->
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=EmulateIE7" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

但是

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
在我的网站上呈现页面时,页面标题中不存在

。我遵循了这篇文章ASP.NET App - Set IE7-Compatibility Mode?中的建议,但它似乎没有按预期使用IE8和IIS6。任何提示?

1 个答案:

答案 0 :(得分:14)

原来问题是我正在使用 IIS6 。 IIS6查看Web.config的<system.web>部分而不是<system.webServer>部分(IIS7使用它,除非它以兼容模式运行)。要在运行IIS6时在网站的每个页面上呈现此元标记,我相信最好的选择是将其添加到您的主页。我最终将以下代码块添加到我的MasterPage的OnPreRender事件中:

Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv = "X-UA-Compatible", Content = "IE=EmulateIE7" });

我之所以使用AddAt而不仅仅是普通的Add是因为X-UA-Compatible元标记显然必须是页眉中的第一个才能被尊重。

希望这可以帮助同一条船上的人!