如何获取根URL

时间:2010-09-10 07:31:24

标签: asp.net-mvc

以下代码是一个可怕的黑客。

Uri linkUri = HttpContext.Current.Request.Url;
string link = linkUri.ToString().Substring(0, linkUri.ToString().IndexOf("Users/Create"));

不是编辑字符串,而是如何首先获得正确的路径Url?

例如,我希望获得http://localhost:9999/而不是http://localhost:9999/Users/Create

4 个答案:

答案 0 :(得分:19)

您可以使用UrlHelper的{​​{3}}方法:

string root = urlHelper.Content("~/");

答案 1 :(得分:11)

这很难看,但是怎么样:

Uri uri = new Uri("http://localhost:9999/Users/Create");
string link = string.Format("{0}://{1}:{2}", uri.Scheme, uri.Host, uri.Port);

编辑:甚至更好:

uri.GetLeftPart(UriPartial.Authority)

答案 2 :(得分:3)

Making Sense of ASP.NET Paths - Rick Strahl's Web Log

这个怎么样? Request.ApplicationPath

答案 3 :(得分:0)

var rootUrl = System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);