2012-04-04 5 views
0

Ich versuchteLink- und Stil Tag erhalten XHTML Warnung in cshtml

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

mit bekam aber eine Warnung

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

Also habe ich versucht

<style></style> 

und bekam eine sehr ähnliche Warnung

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

Wie kann ich diese Validierung einhalten?

+0

@alirizaadiyahsi - dieser Link bietet eine gute Erklärung, warum das passiert. Ich werde eine Antwort veröffentlichen, die zeigt, wie das Link-Tag in wenigen Minuten dynamisch an den Kopf angehängt wird. –

+0

Nicht sicher, ob dies mit der Warnung hilft, aber Sie haben ein Angebotsproblem in Ihrem ersten Beispiel. Sie können keine Anführungszeichen in einen in Anführungszeichen gesetzten Attributwert setzen. –

+0

@MrLister - Vielen Dank für den Vorschlag, aber die Rasiermesser-Engine wird das tatsächlich in eine Zeichenfolge kompilieren, die in den äußeren Zitaten sitzen wird. –

Antwort

0

Wie Alirizaadiyahsi in einem Kommentar verknüpft (obwohl es seitdem entfernt wurde) ist die Ursache dieser Warnung, dass <link> und <style> Tags nur im Kopf des Dokuments gehen können.

Dies ist ein Problem für mich, weil ich benutzerdefinierte Stile für bestimmte Bereiche in meiner asp.net mvc 3-Website haben möchte. Um das Problem zu lösen, habe ich Folgendes getan:

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