以下代码是一个可怕的黑客。
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
答案 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);