2010-01-30 22 views
3

我的應用程序路徑... <中用runat = 「服務器的」 href = 「〜/家」 >ASP.NET〜/不解析爲 「/」

...被解析爲「家」(而不是「/首頁「)。重寫URL後,「/ Blah/Blah」,所有的「〜/」鏈接都是相對於重寫的:/ Blah/Home

有沒有辦法強制根目錄爲「/」?

+0

您應該選擇一個答案作爲解決方案。 – 2010-02-01 14:03:21

回答

1

爲什麼不直接寫相對於根('/')的鏈接而不是'〜/',如果你的應用程序不在域的根目錄,那麼'〜/'鏈接將解析到應用程序的根目錄

+0

謝謝。我相信這是我會做的。 – shxo 2010-01-30 15:26:57

0

如果您確定,對於有問題的鏈接,您將始終位於「/」的根目錄,那麼最簡單的方法是更改​​<a> href讀取「/ Home」而不是「〜/ Home」...這樣,asp.net就不會解析它並將其改爲使用App/VDir作爲起點。

+0

感謝您的意見。 「/「 它是。 – shxo 2010-01-30 15:27:32

0

如果你使用像一個標準的HTML標記,然後通過

<a href="<%=ResolveUrl("~/Home")%>">...</a> 

包括URL,或使用asp.net鏈接:

<asp:Hyperlink NavigateUrl="~/Home" runat="server" ID="HomeLink" Text="..." /> 

這樣一來,所有的鏈接將指向正確的URL ,即使Web應用程序將安裝在子目錄中。

<% %>是asp.net的內聯編碼,<%= %>輸出內容,在這種情況下結果爲ResolveUrl

0

〜/在Web控件中被轉換,因爲在其他情況下,您需要使用ResolveClientUrl來做到這一點。

對於超鏈接控件,它會自動爲您正確映射。