Tilde ~

Hyperlinks oder Bilder brauchen Pfade. Am einfachsten ist natürlich der absolute Pfad.

   1:   <img src="/img/gelb.png" />

Viele geben dabei den Voll qualifizierten Pfad, samt Domain und Protokoll an.

   1:  <img src="http://ppedv.de/img/gelb.png" />

Davon ist abzuraten, außer es handelt sich um eine Ressource die nicht in der eigene Website liegt

Problematisch wird es wenn sich Pfade von der Entwicklungsumgebung zur Laufzeit ändern. Lokal irgendwas mit / Root und am IIS dann in einer Webanwendung /app/.

Dafür hat der ASP.NET Webforms Entwickler die ~ Tilde als Stütze. Mit dem Zusatz Runat Server wird das HTML Anchor Element zu einem HTML Server Element. Der HTML Rendervorgang löst dann den Pfad korrekt auf.

   1:   <a href="~/op/affiliate/Default/suche/" runat="server" >

Dies stößt an seine Grenzen wenn man gleichzeitig Model Binding in den Pfad einbauen möchte. Der Pfad soll dynamisch mit Daten generiert werden.

Hier liefert die Hilfsmethode ResolveUrl das gewünschte Ergebnis. Mit einfacher Ausführung eines = Zeichens oder wie hier mit Modelbinding und er #.

   1:  <a href='<%#ResolveUrl("~/op/affiliate/Default/suche/") 
+ Item.AFFCODE %>'
>
Kommentare sind geschlossen