我的应用程序结构如下:
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.
如何解决此问题?
答案 0 :(得分:2)
我想你想获得当前网址的主机名?如果有,请看看:
您还可以查看Uri类的属性,查看可以从URL中提取的内容,或者可以使用旧的Uri和相对路径字符串或Uri创建新的Uri。
最终我认为你想要做的是:
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>";