微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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");

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

原文地址:https://www.jb51.cc/csharp/92356.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐