Sonntag, 5. April 2015

Stylesheet in ASP. NET Mastersite funktioniert nur mit runat=“server“ Attribut!

Hat mich eine gute Stunde Websuche gekostet, bis ich herausgefunden hatte, warum bei allen Pages CSS nicht funktionierte, obwohl der Stylesheet-Link ordnungsgemäß im HEAD-Tag der Masterseite stand. Diesen Link trägt Microsoft bzw. Visual Studio selbst ein, sobald man der Seite einen Stil zuordnet. Das sieht dann so aus:

   <link href="../<Ordner>/<style>.css" rel="stylesheet" type="text/css" />

Scheinbar alles okay, funktioniert auch super im Designmodus der Masterpage. Aber eben nicht auf den zugeordneten Pages. Ich hab es dann damit versucht, den Style-Link auf jeder Page zusätzlich einzutragen – ohne Erfolg. Schließlich hatte ich die Lösung im Netz gefunden (nachdem alle möglichen Vorschläge nicht funktionierten, z.B. den DOCTYPE zu ändern, oder die css-Datei im Root-Ordner zu speichern). Es fehlt lediglich ein runat-Attribut und der Pfad muss mit der Tilde ‚~' beginnen (das media-Attribut ist optional). Also:

   <link href="~/<Ordner>/<style>.css" rel="stylesheet" type="text/css" runat="server" media="screen" />

Und schon läuft es wie geschmiert. – Allerdings nicht bei UserControls. Da muss ich noch eine Lösung finden, wie dort das CSS auch im Design angezeigt wird.

Keine Kommentare: