似乎无法摆脱兼容性视图?

时间:2011-10-27 20:33:05

标签: c# asp.net internet-explorer html5 http

我正在使用Flot绘图库。它似乎在IE8和IE9中工作正常,但问题出现在IE9兼容性视图中 - 它不呈现任何图形。我怀疑这是因为它大量使用的HTML5 canvas对象,但我可能是错的。我尝试了以下操作:

  • <meta http-equiv="X-UA-Compatible" content="IE=Edge" />添加到我的HTML <head></head>标记中。我甚至尝试了IE=8IE=9,但这也没有帮助。我的标签看起来像这样:

    <!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.1EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="X-UA-Compatible" content="IE=8" />
        ...
    </head>
    <body>
    ...
    </body>
    </html>
    
  • 因为我还在看问题,所以我将以下内容添加到我的Global.asax.cs文件中:

    void Application_End(object sender, EventArgs e)
    {
        //  Code that runs on application shutdown
        Response.Headers.Add("X-UA-Compatible", "IE=Edge");
    }
    

我仍然面临着这个问题。我得到的错误是:

HTML1202: http://intranetdomain/SampleProj/Default.aspx is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
Default.aspx
HTML1113: Document mode restart from IE7 Standards to IE9 Standards 
Default.aspx

反正过来骑这个吗?

编辑:检查我的回复标题,在Global.asax.cs中添加该行并未将其添加到我的标题中。我想知道为什么。

响应标题:

Key Value
Response    HTTP/1.1 200 OK
Cache-Control   private
Content-Type    text/html; charset=utf-8
Server  Microsoft-IIS/7.5
X-AspNet-Version    4.0.30319
X-Powered-By    ASP.NET
Date    Thu, 27 Oct 2011 20:39:55 GMT
Content-Length  29088

编辑2:显然,Application_End是错误的事件。相反,这样做会将元素注入标题:

void Application_BeginRequest(object sender, EventArgs e)
{
    Response.Headers.Add("X-UA-Compatible", "IE=Edge");
}

但问题本身仍然存在。

4 个答案:

答案 0 :(得分:30)

问题可能是由于您的Internet Explorer兼容性视图设置所致。如果转到“工具”菜单,然后转到“兼容性视图设置”,请确保“在兼容性视图中显示Intranet站点”未 选中。您可能会看到IE根据您的Intranet中检测到的主机名强制您进入兼容性视图。

请注意 - 根据您的IE版本 - 您可能需要按左 Alt 键才能显示菜单栏,从中可以打开“工具”菜单。

答案 1 :(得分:3)

您可以直接在IIS上设置兼容性设置。如果单击该站点并打开响应标头,则可以添加X-UA-Compatible,其值为IE = X,其中X是您的目标版本。您也可以在服务器级别设置它。但请记住,如果您在同一个盒子上有多个站点,则可能会遇到与这些站点有关的问题。您可以在服务器级别应用,然后从站点级别删除继承的配置。

答案 2 :(得分:2)

两年,以及IE的两个新版本,以及这个IE8问题仍然会导致问题!

我发现,对于我们公司的ASP.Net应用程序,在web.config中添加“X-UA-Compatible”,在网页中,或者他们的代码背后,完全没有区别。

唯一对我们有用的是手动取消“在兼容性视图中显示Intranet集”复选框:

Turn off Display intranet sets in Compatibility View

答案 3 :(得分:0)

奇怪的是 - 如果您删除runat="server"meta标记就会生效,按钮就会消失。 B当然不建议删除runat