Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc IE 8上呈现的html中的奇怪额外字符_Asp.net Mvc_Html_Mono_Apache2_Excanvas - Fatal编程技术网

Asp.net mvc IE 8上呈现的html中的奇怪额外字符

Asp.net mvc IE 8上呈现的html中的奇怪额外字符,asp.net-mvc,html,mono,apache2,excanvas,Asp.net Mvc,Html,Mono,Apache2,Excanvas,我有一个ASP.NETMVC站点,我想在其中呈现一些自定义HTML5画布。我遇到了一个奇怪的问题,服务器提供了源代码中没有的额外字符 为了在IE 8中使用HTML 5画布,必须在HTML头部添加以下标记: <!--[if IE]><script src="../../Scripts/excanvas.js"></script><![endif]--> 出于某种原因,这被用作: <!--[if IE]>IE]><scri

我有一个ASP.NETMVC站点,我想在其中呈现一些自定义HTML5画布。我遇到了一个奇怪的问题,服务器提供了源代码中没有的额外字符

为了在IE 8中使用HTML 5画布,必须在HTML头部添加以下标记:

<!--[if IE]><script src="../../Scripts/excanvas.js"></script><![endif]-->

出于某种原因,这被用作:

<!--[if IE]>IE]><script src="../../Scripts/excanvas.js"></scr<![endif]-->

当然,duff标记导致IE无法加载excanvas脚本。我不明白为什么这行代码会乱码。我有以下doctype,记录在:


我不熟悉使用HTML5或新的doctype,所以我怀疑它。我也用Mono在Apache上托管,所以可能这就是造成混乱的原因

有关网页载于:

有人见过这个,或者知道我为什么不能使用“if-IE”语法吗

更新: 我很确定是Mono或Apache混淆了HTML,所以我使用了下面的解决方法,为IE8添加了兼容元标记,并为任何早于IE9的IE添加了excanvas。 如果您能回答HTML为什么会乱码,我将不胜感激

<% if (Request.Browser.Browser.Contains("IE") && float.Parse(Request.Browser.Version) < 9) { %>
<% if (float.Parse(Request.Browser.Version) > 7) { %>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<% } %>
<script type="text/javascript" src="../../Scripts/excanvas.js"></script>
<% } %>

7) { %>

在回答之前,我想指出您的示例中缺少
type=“text/javascript”

Mono中的ASP.NET解析器可能会弄乱您的评论。您使用的是哪个版本的Mono(我想是哪个平台)


我刚刚在Mac上的Mono 2.10上试过,没有出现这个问题。

非常奇怪。离题:,所以你可能希望你的条件评论选择IE 8和更早版本。这应该可以工作(一旦服务器停止咀嚼它):
另外,请参考官方文档,不要使用W3E。格林纳达,我使用了您在问题更新中提供的解决方案,谢谢。我只想指出,我在Yosemite上的以下版本的Mono for Apache中遇到了同样的问题:Mono JIT编译器版本3.10.0(这个问题提出已经4年了!)我认为HTML 5不鼓励使用
type=“text/javascript”
。@Xavier-谢谢。我甚至不知道它是可选的。我提到它的原因是,我认为它可能会混淆ASP.NET,因为你也可以使用script标记来编写C#或VB.NET代码。
<% if (Request.Browser.Browser.Contains("IE") && float.Parse(Request.Browser.Version) < 9) { %>
<% if (float.Parse(Request.Browser.Version) > 7) { %>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<% } %>
<script type="text/javascript" src="../../Scripts/excanvas.js"></script>
<% } %>