MVC Razor怪癖模式 - umbraco

时间:2012-04-14 07:30:10

标签: asp.net-mvc-3 razor umbraco quirks-mode

我似乎有一个模糊的问题,剃刀模板迫使浏览器进入怪癖模式。它是umbraco 5中的一个简单的剃​​刀模板。以下代码使chrome,firefox,IE都进入怪癖模式:

@inherits RenderViewPage
@using System.Web.Mvc.Html;
@using Umbraco.Cms.Web;
@{
    Layout = "";
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> 
<head>
  <meta charset="utf-8" />
  <title>Page title</title>
</head>
<body>



</body>
</html>

如果我完全移动剃刀语法或将其向下移动,那么它不会在doctype之前进入标准合规模式。我尝试添加各种X-UA兼容的元标记无效。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> 
<head>
  <meta charset="utf-8" />
  <title>Page title</title>
</head>
<body>

@inherits RenderViewPage
@using System.Web.Mvc.Html;
@using Umbraco.Cms.Web;
@{
    Layout = "";
}

</body>
</html>

任何想法可能是什么原因?好像浏览器认为它在doctype之前渲染了一些东西,但是我看不到任何东西。

由于

3 个答案:

答案 0 :(得分:1)

您的@using语句中不需要使用分号,这可能是浏览器看到的内容吗?

所以,例如。

@using Umbraco.Cms.Web;

可以

@using Umbraco.Cms.Web

答案 1 :(得分:1)

同样在这里 看起来它在打开标签之前放置了额外的字符(空白)&lt; doctype。我认为这是一个编辑器错误。

尝试删除开头“&lt;”并将其插回并保存。 doctype也应该是文件的第一行。

答案 2 :(得分:0)

@语句被翻译为空格。 doctype预计将成为该文档的第一行。在这种情况下,第一行是空白,因此doctype被定义为空行triggers quirksmode