c# – 覆盖web.config中针对特定页面和框架的X-UA兼容设置

前端之家收集整理的这篇文章主要介绍了c# – 覆盖web.config中针对特定页面和框架的X-UA兼容设置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个.Net Web应用程序,其中包含一个web.config设置,强制Internet Explorer关闭兼容模式并使用最新版本的IE:
<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="X-UA-Compatible" value="IE=Edge" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

但是,此应用程序包含需要兼容模式的旧页面.在我的测试中,只有当X-UA-Compatible设置为IE = 5时才能正常显示.

有没有办法覆盖单个页面的web.config设置?

我尝试过的很多东西都没有用过:

>包括< Meta http-equiv =“X-UA-Compatible”content =“IE = 5”/>在页面本身,作为< head>之后的第一个标记
>添加X-UA兼容:IE = 5到响应头.不幸的是,它还发送了X-UA-Compatible:IE = Edge标头,并且那个’赢了’.
>更改<!DOCTYPE>.我尝试了各种各样的选择.
>在DOCTYPE之前添加注释
>重新编写页面以符合标准.这显然是最好的解决方案,但有问题的页面是一个复杂的映射应用程序,重写将需要几个月的时间.

更新
当我称之为“一个复杂的地图应用程序”时,我应该说“一只老鼠的框架和桌子”.事实证明,框架部分与解决方案相关.

解决方法

我终于通过将此代码放在每页的Page_Load()中来解决这个问题,该页面是该页面框架集的一部分(总共大约十几页).
Response.ClearHeaders();
Response.AddHeader("X-UA-Compatible","IE=5");

我一直在假设框架集页面将继承主页面中的设置,但显然不是.只是将它放在主页上不起作用,我不得不把它放在每个页面/框架上.

猜你在找的C#相关文章