我正在使用.net 4.0 c#。
我希望能够从当前的http请求中获取url,包括任何虚拟目录。例如(请求和寻求的价值):
http://www.website.com/shop/test.aspx - > http://www.website.com/shop/
http://www.website.com/test.aspx - > http://www.website.com/
http://website.com/test.aspx - > http://website.com/
如何实现这一目标?
答案 0 :(得分:30)
这就是我使用的
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Current.Request.ApplicationPath;
答案 1 :(得分:4)
Request.Url应该包含您需要的一切。在这一点上,这是检查字符串,以及你喜欢从中获取的问题。我之前使用过AbsoluteUri,它有效。
这个例子不是万无一失的,但你应该能够从中找出你需要的东西:
string Uri = Request.Url.AbsoluteUri;
string Output = Uri.Substring(0, Uri.LastIndexOf('/') + 1 );
答案 2 :(得分:1)
此解决方案可以正常运行并且更短:
string url = (new Uri(Request.Url, ".")).OriginalString;
答案 3 :(得分:0)
这应该有效
Request.Url.OriginalString.Substring(0, Request.Url.OriginalString.LastIndexOf(Request.FilePath.Substring(Request.FilePath.LastIndexOf("/")))) + "/"