2016-07-20 9 views
0

Wenn Sie versuchen, einen Hyper-Link Control NavigateUrl Eigenschaft auf einen relativen Pfad zu setzen, z.B .:Setzen Sie eine ASP.NET HyperLink NavigateUrl auf einen relativen Pfad?

pages/myPage.aspx 

ASP.NET wird die relative URL auf ein absolutes lösen.

Wie bekomme ich eine korrekte relative URL im generierten HTML?

Interessanterweise werden relative URLs mit einem führenden Schrägstrich, unverändert gerendert, ohne aufgelöst zu werden.

Antwort

1

Statt NavigateUrl, stellen Sie den href Attributkontrolle:

<asp:HyperLink runat="server" href="pages/myPage.aspx">test</asp:HyperLink> 

oder in Code-Behind:

myHyperLinkId.Attributes["href"] = "pages/myPage.aspx"; 
+0

Können Sie uns zeigen, was Sie für beide Methoden erhalten (NavigateUrl und href)? Wenn ich es teste, sehe ich die gleiche URL in der HTML-Ausgabe der Seite. Um einen Pfad relativ zum Stammordner der Anwendung zu erhalten, kann ich ihn mit der 'NavigateUrl =" ~/pages/myPage.aspx "-Syntax erhalten. – ConnorsFan

+0

Sie scheinen richtig zu sein ... Ich bin derzeit nicht in der Lage, die Probleme zu reproduzieren, die mir ursprünglich begegnet sind. Ich werde demnächst genauer nachforschen und hoffentlich in der Lage sein, mein Q und oder A zu aktualisieren, wenn ich mehr Informationen habe. –

+0

Ich habe meine Frage aktualisiert. Sie hatten recht mit der spezifischen relativen URL, die ich verwendet habe. Das Problem tritt nur auf, wenn Sie relative URLs verwenden, die nicht mit einem Schrägstrich oder einer Periode beginnen. –

Verwandte Themen