0

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

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

网址应构建为,

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

但它来了,

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

有谁知道为什么?

4

4 回答 4

5

我假设你目前在http://localhost/Requests/something.aspx?如果是这样,那是因为您忘记了波浪号根说明符:

~/Companies/Details.aspx

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

于 2012-04-24T15:44:36.597 回答
2

你也可以试试

Page.ResolveClientUrl("~/Companies/Details.aspx?Company_ID=" + Company_id)
于 2012-04-24T15:48:59.897 回答
1

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

尝试将其更改为 a HyperLink,然后您不需要将 HTML ( <a href=...) 放在 text 属性中,您将能够使用hypCompany.NavigateUrl = strUrl并且 ASP.Net 将为您生成它。无论如何,这是最简洁的方法。

还要添加波浪号以转到根目录:-)

例如

Dim strUrl As String = "~/Companies/Details.aspx?Company_ID=" & .Company_id
hypCompany.NavigateUrl = strUrl
于 2012-04-24T15:51:23.530 回答
0

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

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

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

我认为如果公司文件夹位于根目录中,这将起作用。tilda 应该确保它从根部向下看。

于 2012-04-24T15:50:13.920 回答