2012-04-14 107 views
0

我似乎有一個模糊的問題,剃刀模板強制瀏覽器進入怪癖模式。它是一把umbraco 5.一個簡單的剃​​刀模板下面的代碼使得瀏覽器,Firefox,IE都進入特殊模式:MVC Razor怪癖模式 - umbraco

@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> 

如果我完全移動剃刀語法或下移,所以它不是文檔類型前它進入標準合規模式。我已經嘗試添加各種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之前呈現的東西,但沒有我能看到的東西。

感謝

+0

此問題似乎是由模板頂部的@inherits RenderViewPage引起的。我無法找到任何信息或解決方法 - 解決方案是使用Umbraco 4.7! – user1300464 2012-04-14 08:25:40

回答

1

你並不需要在你的@using語句的分號,也許這是什麼瀏覽器看到的?

所以例如

@using Umbraco.Cms.Web; 

可以只是

@using Umbraco.Cms.Web 
+0

感謝您的建議,我不知道,分號由umbraco模板提供。不幸的是,刪除它們並沒有區別。 但是我剛剛發現,通過刪除第一行:@inherits RenderViewPage它將在標準兼容模式下呈現。 – user1300464 2012-04-14 07:42:25

1

同樣在這裏 它看起來像它放置額外的字符(空格)打開文檔類型的標籤<之前。我認爲這是一個編輯器錯誤。

嘗試刪除開頭「<」,然後將其插回並保存。也doctype應該是文件的第一行。

0

@語句被翻譯爲空白。文檔類型有望成爲文檔的第一行。在這種情況下,第一行是空白的,所以doctype被定義爲空行,其中triggers quirksmode