如何使用C#在Url重写中获取完整的浏览器URL

时间:2012-04-20 09:46:17

标签: c# url

我使用过URL重写。我有一个问题是我有像

这样的网址
http://localhost/learnmore.aspx

这是网址覆盖,所以我想要这个完整的网址,所以我这样编码。

string url=Request.RawUrl;

在此代码之后,我在url变量中获得/learnmore.aspx但我想要完整的网址http://localhost/learnmore.aspx

我该怎么做?

4 个答案:

答案 0 :(得分:3)

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost/learnmore.aspx

string path = HttpContext.Current.Request.Url.AbsolutePath;
// /localhost/learnmore.aspx

string host = HttpContext.Current.Request.Url.Host;
// localhost

编辑:删除查询字符串项:(从Get url without querystring找到)

var uri = new Uri(HttpContext.Current.Request.Url.AbsoluteUri);
string path = uri.GetLeftPart(UriPartial.Path);

OR

Uri url = new Uri("http://www.somesite.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = String.Format("{0}{1}{2}{3}", url.Scheme, 
    Uri.SchemeDelimiter, url.Authority, url.AbsolutePath);

OR

string url = "http://www.somesite.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));

答案 1 :(得分:1)

你可以通过这种方式获得主持人和方案:

Request.Url.GetLeftPart(UriPartial.Authority)

有了这个,你将得到:

  

http://localhost/

然后你可以追加RawUrl

答案 2 :(得分:0)

您可以尝试获取基本网址:

string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + 
    Request.ApplicationPath.TrimEnd('/') + "/";

答案 3 :(得分:0)

Request.Url.AbsoluteUri可以解决问题。