2012-01-04 95 views
0

我有一個網站,我localy運行,並在瀏覽器上的路徑是ASP.Net頁面相對路徑?

"http://localhost:3184/basel/index.aspx" 

我有一個包含各種超鏈接,其中一個菜單是:

<a href="en/open-account/index.aspx"></a> 
//This will evaluate to http://localhost:3184/basel/en/open-account/index.aspx. 

超鏈接將重定向我上面的頁面,在此之後,當我嘗試再次單擊菜單上的相同的鏈接,該頁面的路徑是:

"http://localhost:3184/basel/en/open-account/en/open-account/index.aspx" 

爲什麼是否它的路徑重複,我一直在掙扎一段時間,但似乎無法弄清楚,任何解決方案?

回答

1

試試這個:

<a href="~/en/open-account/index.aspx" runat="server"></a> 

使用波浪創建一個應用程序相對路徑。

+0

我已經嘗試了您之前所說的內容,它給了我以下路徑:「http:// localhost:3184/basel /〜/ en/open-account/index.aspx」。正如你所看到的,「〜」符號在路徑上受到阻礙而未被評估,不知道爲什麼? – 2012-01-04 10:59:52

+2

您是否在 danludwig 2012-01-04 11:03:11

+0

不會有任何區別 – 2012-01-04 11:04:03

0

你的代碼背後是什麼?如果A標籤是動態設置的(可能是這樣的myHyperlink.NavigateURL += "en/open-account/index.aspx";),那麼每次頁面加載時,URL都會在結尾添加一個新值。

也許檢查後面的代碼,看看這個URL是否在那裏被操縱?如果你已經這樣做了,我的道歉:)

+0

代碼中沒有代碼maniuplate落後於此,A標籤在源代碼上。 – 2012-01-04 11:03:37

0

使用Page.ResolveUrl()方法。如果relativeUrl具有絕對URL,則URL將保持不變。如果relativeUrl包含相對URL,則該URL將更改爲相對於當前請求路徑正確的URL,以便瀏覽器可以解析該URL。