我有以下代码,应该从请求页面转到特定的公司页面。在网站文件夹中,公司页面位于名为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
有谁知道为什么?
答案 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
我认为如果公司文件夹位于根目录中,这将有效。蒂尔达应确保它从根部向下看。