我创建了几个虚拟导演,我希望能够从当前的http请求中获取url。
例如:
http://www.site.com/app_1/default.aspx ===> http://www.site.com/app_1/
http://www.site.com/app_2/default.aspx ===> http://www.site.com/app_2/
...
http://www.site.com/app_n/default.aspx ===> http://www.site.com/app_n/
我的代码:
string urlApp = HttpContext.Current.Request.Url.AbsoluteUri.ToString();
urlApp = urlApp.Substring(0, urlApp.LastIndexOf('/') + 1);
我试过
string urlApp = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/";
在localhost中效果很好:http://localhost:2468/test.aspx
结果http://localhost:2468/
,但是当通过虚拟目录http://myhost/app_1/test.aspx
访问http://myhost/
我怎样才能获得http://myhost/app_1/
?
答案 0 :(得分:5)
HttpContext.Current.Request.ApplicationPath
是获取虚拟目录路径所需的内容。将其附加到您已经获得的网址上,然后您就会成为赢家。像
这样的东西HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Current.Request.ApplicationPath
应该可以工作,但要注意尾随斜杠。