2012-04-04 54 views
0

我嘗試使用Link和風格標籤獲得CSHTML XHTML警告

<link href="@Url.Content("~/Content/Extras.css")" 
rel="stylesheet" type="text/css" /> 

,但有一個警告

Validation (XHTML 1.0 Transitional): Element 'link' cannot be 
nested within element 'link'. 

所以,我想

<style></style> 

,並有一個非常類似的警告

"Validation (XHTML 1.0 Transitional): Element 'style' cannot be 
nested within element 'style'." 

我如何符合此驗證?

+0

@alirizaadiyahsi - 該鏈接確實提供了一個很好的解釋爲什麼發生這種情況。我將發佈一個答案,顯示如何在幾分鐘內將鏈接標籤動態追加到頭部。 – 2012-04-04 20:07:03

+0

不確定這是否有助於警告,但在第一個示例中存在報價問題。您不能將引號放在引用的屬性值中。 – 2012-04-04 20:28:53

+0

@MrLister - 謝謝你的建議,但剃刀引擎實際上會將它編譯成一個字符串,它將位於外部引號內。 – 2012-04-04 20:43:55

回答

0

由於Alirizaadiyahsi在註釋中鏈接(儘管它已被刪除),此警告的原因是<link><style>標記可能只能在文檔的頭部。

這對我來說是一個問題,因爲我想爲我的asp.net mvc 3站點中的某些區域設置自定義樣式。爲了解決這個問題,我這樣做:

<script type="text/javascript"> 
var x = document.createElement("link"); 
x.setAttribute("href",'@(Url.Content("~/Content/Extras.css"))'); 
x.setAttribute("rel", "stylesheet"); 
x.setAttribute("type", "text/css"); 
$('head')[0].appendChild(x); 
</script>