Wie ein Medienattribut auf den CSS-Link HTML-Tag für den ASP.NET WebResource.axd Http-Handler hinzufügen
-
02-10-2019 - |
Frage
Die ASP.NET WebResource.axd Http-Handler verwendet wird Ressourcen zu dienen eingebettet in DLL.
Der LINK-HTML-Tag wird automatisch generiert von ASP.NET.
Ich mag die Erzeugung des LINK HTML-Tages für einen bestimmten Satz von eingebetteter CSS von einem Dritten DLL abzufangen und ein Medienattribut hinzufügen.
Fazit:
Ich möchte ein Medien Attribut auf den Link HTML-Tag für das ASP.NET WebResource.axd Http-Handler hinzuzufügen.
So folgt:
<link type="text/css" rel="stylesheet" href="/WebResource.axd?d=XXXXX" />
scheint wie folgt aus:
<link media="screen and (min-device-width: 481px)" type="text/css" rel="stylesheet"
href="/WebResource.axd?d=XXXXX" />
Prost
Lösung
Es gibt eine Abhilfe. Erstens wie diese Links hinzugefügt der Page
an den Kopf werden. Ihre Seite muss runat=”server”
im <head>
Tag für die automatische Stylesheet Aufnahme hat. Die Seiten von der IDE erstellt automatisch diese Einstellung haben. Also, Links hinzugefügt wird, ist ein HtmlLink
Steuerart. Die Idee ist, zu durchlaufen Kontrollen in Page
Header, HtmlLink
Kontrollen und Satz notwendiges Attribut (oder sogar Attribute) finden. Ich schließe diese in das Page_Load
Ereignis:
Page.Header.Controls
.OfType<HtmlLink>()
.ToList()
.ForEach(link =>
{
link.Attributes["media"] = "screen and (min-device-width: 481px)";
});
Vor diesem hatte ich:
<head id="Header">
<title></title>
<link href="App_Themes/MyTheme/main.css"
type="text/css"
rel="stylesheet" />
</head>
und nach ist das Ergebnis:
Ich weiß, Themes
diese Verwendungen von WebResource.axd
insted aber für die letzte wird das Ergebnis das gleiche sein.
Der letzte Schrei: Es kann eine andere Links auf der Seite sein. So wäre es gut zu erkennen unsere Links (Links geändert werden müssen). Also, wenn es kein id
Attribut ist, dass Sie sie durch href
Attribut erkennen können.