Merkwürdiges Verhalten mit Hyperlink und PathInfo

25/05/2008 - 20:41 von Marco von Frieling | Report spam
Hallo.

Ich habe ein merkwürdiges Verhalten bei der Auflösung von "~/" bei allem was
runat="server" ist, wenn die aktuelle Seite eine PathInfo enthàlt (also z.
B. Default.aspx/PathInfo ). Ich kann dieses Verhalten in einem Testprojekt
reproduzieren, also liegst nicht an meinem Projekt.

Das Testprojekt hat folgende Struktur:

~/Site.Master
~/Default.aspx
~/Subfolder/Test.aspx
~/Testfolder/Target.aspx

Die Seiten enthalten jeweils nur einen statischen Text der angibt welche
Seite das gerade ist. Die Masterpage enthàlt 3 Links, die alle (auf
verschiedene Art) auf die Test.aspx verweisen:

<asp:HyperLink ID="Link1" runat="server"
NavigateUrl="~/Testfolder/Target.aspx">Target 1</asp:HyperLink><br />
<a href='<%= ResolveUrl("~/Testfolder/Target.aspx") %>'>Target 2</a><br />
<a href='<%= ResolveUrl("~/Testfolder/Target.aspx/SomePathInfo") %>'>Target
3</a><br />
<a href='<%= ResolveUrl("~/Subfolder/Test.aspx/SomePathInfo") %>'>Test</a>

Gehen wir mal davon aus, dass das Projekt auf localhost Port 8080 làuft,
dann gehen die Links auf folgende Urls :

An sich funktionieren alle Links korrekt, außer der vom Hyperlink Control
(Target 1) generierte Link nachdem ich auf "Test" geklickt habe.

Der zeigt anstatt auf http://localhst:8080/Testfolder/Target.aspx nàmlich
auf
http://localhst:8080/Subfolder/Testfolder/Target.aspx und erzeugt damit
einen kaputten Link.

Hat dazu jemand einen Idee?

Danke und lg,
Marco
 

Lesen sie die antworten

#1 Tseng S.
25/05/2008 - 21:52 | Warnen spam
<asp:HyperLink ID="Link1" runat="server"
NavigateUrl="~/Testfolder/Target.aspx">Target 1</asp:HyperLink><br />
<a href='<%= ResolveUrl("~/Testfolder/Target.aspx") %>'>Target 2</a><br />
<a href='<%= ResolveUrl("~/Testfolder/Target.aspx/SomePathInfo")
%>'>Target 3</a><br />
<a href='<%= ResolveUrl("~/Subfolder/Test.aspx/SomePathInfo") %>'>Test</a>

Der zeigt anstatt auf http://localhst:8080/Testfolder/Target.aspx nàmlich
auf
http://localhst:8080/Subfolder/Testfolder/Target.aspx und erzeugt damit
einen kaputten Link.


Ist Subfolder eine eigene Webapplication im IIS? Wenn ja, dann wirds wohl
daran liegen. ~/ benutzt den Ordner der webapplication und nicht root oder
der "obersten" Application.

Ähnliche fragen