2012-04-24 100 views
0

我有下面的代碼應該從請求頁面轉到特定的公司頁面。在網站文件夾中,公司頁面位於名爲Companies的文件夾下,請求頁面位於Requests文件夾下。鏈接到asp.net中的不同頁面

Dim strUrl As String = "/Companies/Details.aspx?Company_ID=" & .Company_id 
litlCompany.Text = "<a href=" & strUrl & ">" & .Company.Name & "</a>" 

URL應該建成,

http://localhost/Companies/Details.aspx?Company_ID=222

但它作爲,

http://localhost/Requests/Companies/Details.aspx?Company_ID=222

有誰知道爲什麼嗎?

+0

strUrl究竟是什麼? – 2012-04-24 15:44:46

+0

如果您在URL前面使用〜,它會轉到根文件夾,然後您可以訪問下面的文件夾。這在主頁面非常方便。因此,對於您的示例,它看起來像「Dim strUrl As String =」〜/ Companies/Details.aspx?Company_ID =「&.Company_id' – ThePower 2012-04-24 15:46:41

+0

http://localhost/Requests/~/Companies/Details.aspx?Company_ID = 254 。它現在就是這樣。 – Joshua 2012-04-24 15:48:08

回答

2

您也可以嘗試

Page.ResolveClientUrl("~/Companies/Details.aspx?Company_ID=" + Company_id) 
5

我假設你目前http://localhost/Requests/something.aspx?如果是這樣,那是因爲您忘記了代字符根指定符:

~/Companies/Details.aspx 

哪個應該解決您的問題。

+0

鑑於他做事的方式,這仍然會工作嗎?這個代字號不會寫在他的字面上的href中嗎? – 2012-04-24 15:47:50

+0

可能。如果他要保證寫入鏈接代碼的網址是正確的,他會是更好的服務器只是簡單地提出'strUrl'的'Request.Url.Host' +'組合strUrl' – Tejs 2012-04-24 15:49:20

+0

@Tejs不工作 – Joshua 2012-04-24 15:50:40

0

我假設,這個鏈接是建立在request.aspx頁。

我認爲在href被渲染到當前HttpContext。您是否嘗試過創建字符串:

昏暗strUrl的String = 「?〜/公司/ Details.aspx COMPANY_ID =」 & .Company_id

我認爲,如果公司文件夾的根,這將工作。蒂爾達應該確保它從根部向下看。

+0

是的。該鏈接構建在request.aspx頁面中。我試過了Page.ResolveClientUrl(「〜/ Companies/Details.aspx?Company_ID =」+ Company_id)。它的工作現在 – Joshua 2012-04-24 15:55:28

1

通過您的控件的名稱,似乎您使用的是Literal

嘗試將其更改爲HyperLink,則不需要將HTML(<a href=...)置於文本屬性中,您將能夠使用hypCompany.NavigateUrl = strUrl,並且ASP.Net將爲您生成該文件。無論如何,這是最好的方式。

此外,在代字號中加入去根:-)

E.G.

Dim strUrl As String = "~/Companies/Details.aspx?Company_ID=" & .Company_id 
hypCompany.NavigateUrl = strUrl