Request.ApplicationPath无法正常工作

时间:2013-06-28 09:14:56

标签: asp.net

我的应用程序结构如下:

 MyProject
    -Tracking
      - TrackingPage.aspx
    -master
      -mymaster

mymaster页面中,我有这样的链接:

 string sApplicationPath = Request.ApplicationPath;

pStr = pStr + "<li id='Home'><a class='top' href='";
        pStr = pStr + sApplicationPath;
        pStr = pStr + "/Tracking/TrackingPage.aspx'>Home</a></li>";

当运行应用程序时,它可以工作,但当我把它放在IIS中时,它给了我:

 http://117.**.**.134/mysit/Tracking/TrackingPage.aspx.

当我点击链接时,它会将我导航到错误的位置:

http://117.**.**.134/mysit/master/Tracking/TrackingPage.aspx.

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

我想你想获得当前网址的主机名?如果有,请看看:

Request.Url

您还可以查看Uri类的属性,查看可以从URL中提取的内容,或者可以使用旧的Uri和相对路径字符串或Uri创建新的Uri。

Uri class

最终我认为你想要做的是:

Uri url = new Uri(Request.Url, "/Tracking/TrackingPage.aspx");
pStr = pStr + "<li id='Home'><a class='top' href='";
pStr = pStr + url.ToString();
pStr = pStr + "'>Home</a></li>";