2012-04-04 3 views
0

Я попытался с помощьюСсылки и стиль тег получить предупреждение XHTML в cshtml

<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 - эта ссылка действительно дает хорошее объяснение, почему это происходит. Я отправлю ответ, который показывает, как динамически добавить тег ссылки в голову через несколько минут. –

+0

Не уверен, что это поможет с предупреждением, но у вас есть проблема с цитатой в вашем первом примере. Вы не можете помещать кавычки в значение цитируемого атрибута. –

+0

@MrLister - Спасибо за предложение, но механизм бритвы фактически скомпилирует это в строку, которая будет сидеть внутри внешних цитат. –

ответ

0

Поскольку Alirizaadiyahsi связан в комментарии (хотя с тех пор он был удален), причина этого предупреждения в том, что теги <link> и могут находиться только в начале документа.

Это проблема для меня, потому что я хочу иметь пользовательские стили для определенных областей на моем сайте 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>