ASP.NET MVC自动向空标记添加斜杠

ASP.NET MVC自动向空标记添加斜杠,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一个带有母版页的asp.NETMVC站点,它的头部有以下标记 <head runat="server"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> 但当我在任何浏览器中查看源代码时,meta标记显示为 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 谁将/添加到结尾作为/> 问题是,当使用w3验证程序验证站点

我有一个带有母版页的asp.NETMVC站点,它的头部有以下标记

<head runat="server">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

但当我在任何浏览器中查看源代码时,meta标记显示为

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

谁将/添加到结尾作为/>

问题是,当使用w3验证程序验证站点时,它会显示一个错误,表示meta标记应该关闭为>而不是/>。但我无法找到/>是如何创建的

Doct类型为

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

如果您想亲自查看该网站,请访问该网站

我在这里完全不懂。任何帮助都是值得的


这在casini和IIS 7中都会发生。

尝试从
head
标记中删除
runat=“server”
属性。

尝试从
head
标记中删除
runat=“server”
属性。

如ZippyV所述,问题是asp.net运行时正在重写标记,因为它们包含在服务器控件(runat=“server”)中。我建议不要使用它

此外,您应该真正选择将X-UA-Compatible指定为标头,而不是元标记。这允许浏览器在开始呈现页面之前选择正确的模式

例如:

void Application_BeginRequest()   
{ 
    Response.AppendHeader("X-UA-Compatible", "IE=edge");
} 

正如ZippyV提到的,问题在于asp.net运行时正在重写您的标记,因为它们包含在服务器控件中(runat=“server”)。我建议不要使用它

此外,您应该真正选择将X-UA-Compatible指定为标头,而不是元标记。这允许浏览器在开始呈现页面之前选择正确的模式

例如:

void Application_BeginRequest()   
{ 
    Response.AppendHeader("X-UA-Compatible", "IE=edge");
} 

奇怪的是,如果您在meta标记后添加一个,会发生什么?除非您必须这样做,否则您不应该在mvc中真正使用runat=“server”。你这样做的原因是什么?我忽略了它:(,它一定是由designercurious添加的,如果在meta标记后添加一个,会发生什么?除非你必须这样做,否则你不应该在mvc中真正使用runat=“server”。你这样做的原因是什么?我忽略了它:(,它一定是由设计师添加的