链接到asp.net中的其他页面

时间:2012-04-24 15:42:10

标签: asp.net .net vb.net

我有以下代码,应该从请求页面转到特定的公司页面。在网站文件夹中,公司页面位于名为Companies的文件夹下,请求页面位于Requests文件夹下。

 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

有谁知道为什么?

4 个答案:

答案 0 :(得分:5)

我假设你目前在http://localhost/Requests/something.aspx?如果是这样,那是因为你忘记了波形符根指定符:

~/Companies/Details.aspx

哪个应该可以解决您的问题。

答案 1 :(得分:2)

您也可以尝试

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

答案 2 :(得分:1)

根据您的控件名称,您似乎正在使用Literal

尝试将其更改为HyperLink,然后您不需要将HTML(<a href=...)放在text属性中,您就可以使用hypCompany.NavigateUrl = strUrl和ASP。 Net将为您生成它。无论如何,这是最好的方式。

还要在波形符号中添加到根目录: - )

E.G。

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

答案 3 :(得分:0)

假设此链接是在request.aspx页面中构建的。

我认为a href正在呈现给当前的httpcontext。您是否尝试过将字符串创建为:

Dim strUrl As String =“〜/ Companies / Details.aspx?Company_ID =”&amp; .Company_id

我认为如果公司文件夹位于根目录中,这将有效。蒂尔达应确保它从根部向下看。