#

ASP.Net: Relativer Pfad mit ../ ändern in Link Url und ImageUrl

Problem: Die ausgegebenen URL Adressen in Hyperlinks zeigen auf einen Unterordner in meiner Domain,
da das UserControl oder die Webseite, Page sich in einem Unterverzeichnis befindet.
Hier am Beispiel

Die Hauptseite heißt /Default.aspx und soll auf die Datei details.aspx im gleichen Verzeichnis zeigen.
Da das Link-Element Hyperlink-Control sich in einem Unterverzeichnis befindet mit dem Namen /_usercontrols
Verweist die resultierende URL Adresse des Links auf _Usercontrol/Details.aspx



Bisher wurde der Link als URL einfach ohne Domain ausgegeben
Dim sLink As String = "Details?d=" & intIDDetail & "&a=" & fx.dbZahlInt(row("IDArea")) & "&f=" & fx.dbZahlInt(row("IDFolder")) & "&l=0&t=" & sTitleURL


Lösung
Einfach aber genial. Wenn man die relative URL Adresse mit ../ wie früher einen Ordner hochwandert und diese URL an ein ASP.Net Control wie ein
Hyperlink oder Image.SourceURL

dann wird diese Text nicht angezeigt und
Dim sLink As String = "../Details?d=" & intIDDetail & "&a=" & fx.dbZahlInt(row("IDArea")) & "&f=" & fx.dbZahlInt(row("IDFolder")) & "&l=0&t=" & sTitleURL

Im XAML des Controls
<asp:HyperLink ID="lnkTitle" runat="server" style="color: blue; font-family: Arial;">
Und dieses wird zur Laufzeit gesetzt mit
lnkImage.NavigateUrl = value



Aber auch im Image gilt die URL des Bildes, dass die Angabe einer URL mit einer zum relativen Parent Pfad eingetragenen Teil in der URL, das ASP.Net Controls diesen Teil korrekt umrechnen,
bevor die Ausgabe gerendert wird.
<asp:Image ID="imgImage" runat="server" style="max-width: 160px; max-height: 160px; min-width: 160px; padding-right: 10px;"/>
Wird gesetzt mit
imgImage.ImageUrl = value


Das gilt auch nicht nur für die Anzeige, sondern auch für die echte URL, die im HTML Debugger sichtbar wird, wie man hier in
Der HTML Ansicht, Code Ansicht unter dem Chrome Browser sehen kann.



Und hier die Auswirkung eine ToParent Strings ../ bei einer ImageUrl







Fehlermeldung im IIS Internet Information Server
HTTP Error 404.0 - Not Found
Die gesuchte Ressource wurde entfernt oder umbenannt, oder sie steht vorübergehend nicht zur Verfügung.
Wahrscheinlichste Ursachen:
  • Das angegebene Verzeichnis oder die angegebene Datei ist auf diesem Webserver nicht vorhanden.
  • Die URL enthält einen Schreibfehler.
  • Der Zugriff auf die Datei wird von einem benutzerdefinierten Filter oder Modul wie URLScan eingeschränkt.
    Mögliche Vorgehensweise:
  • Erstellen Sie den Inhalt auf dem Webserver.
  • Überprüfen Sie die Browser-URL.
  • Überprüfen Sie das Ablaufverfolgungsprotokoll für Anforderungsfehler, und überprüfen Sie, welches Modul "SetStatus" aufruft. Klicken Sie hier, um weitere Informationen zu erhalten.


Mobile

.

yesmovies