2012-11-24 12 views
16

In meiner asp.net Website mit MasterPage und Routing Ich benutze eine Tilde in dem href Attribute des link-Tages für das Stylesheet im head Abschnitt des Masterpage. Gefällt mir:Mit Tilde in Script-Tag src-Attribut

<link href="~/Styles/Main.css" rel="stylesheet" type="text/css" /> 

Was funktioniert wie ein Charme. Da die Website Routing verwendet, enthält die URL mehr und mehr /, aber die href des Stylesheets bleibt gültig, weil die Tilde auf den Stamm der Webanwendung zeigt und die Stile verwendet werden.

Ich versuchte mit der gleichen Technik für die src-Attribut der script Tags, aber das scheint nicht das erwartete Ergebnis zu produzieren. Ich habe versucht:

<script src="~/Scripts/jquery-1.8.2.min.js" type="text/javascript" ></script> 

Aber das gibt nur die Tilde an dem HTML-Code der Seite, anstatt sie mit der Wurzel der Web-Anwendung zu ersetzen, wie es funktioniert für das href Attribut. Meine Erfahrung ist, dass asp.net Tilde in href Attribute ersetzt, aber nicht in src Attribute.

Wie kann ich die Tilde in der src attribute von Skript-Tags funktionieren lassen?

Antwort

12

Ich bin mir nicht sicher, ob es einen Weg gibt, um es ohne etwas Hilfe richtig zu arbeiten. Dies sollte funktionieren, nicht so schön wie die link though:

<script src="<%=ResolveUrl("~/Scripts/jquery-1.8.2.min.js")%>"></script> 
+0

Haha +1 vielen Dank für diesen Vorschlag. Ich denke, es könnte funktionieren, aber ich neige dazu, dies aus ästhetischen Gründen leicht abzulehnen. Ich weiß es zu schätzen, dass Sie meine Frage beantwortet haben, aber ich habe auf eine "elegantere" Lösung gehofft. Asp.net macht bereits das richtige Verhalten für 'href' Attribute, ich hatte gehofft, ich könnte 'src' irgendwo in einer Liste hinzufügen, damit es funktioniert. – Bazzz

+0

Haben Sie versucht, dem Skript-Tag das Attribut runat = "server" hinzuzufügen? –

+2

Dann versucht es, Javascript-Server-Seite auszuführen. Kein guter Plan. – Bazzz