CSharp - c#如何获取当前页面的URL

  显示原文与译文双语对照的内容

这个问题已经有了如下答案:

任何人是否可以帮助我获取 ASP.NET 中当前工作页面的URL?

时间:

尝试这个:


string url = HttpContext.Current.Request.Url.AbsoluteUri;
//http://localhost:1302/TESTERS/Default6.aspx

string path = HttpContext.Current.Request.Url.AbsolutePath;
///TESTERS/Default6.aspx

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

你有时需要从URL获取不同的值。

下面的示例展示了提取URL不同部分的不同方法

示例 ( 新建站点)

http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QuerrString2=2

代码


Response.Write("<br/>" + HttpContext.Current.Request.Url.Host);
Response.Write("<br/>" + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/>" + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/>" + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/>" + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/>" + HttpContext.Current.Request.Url.PathAndQuery);

输出


localhost
localhost:60527
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QuerrString2=2
/WebSite1test/Default2.aspx?QueryString1=1&QuerrString2=2 

你可以复制上面的示例代码&在 ASP.NET web表单应用程序中使用不同的URL运行它。

我还建议你阅读 ASP.NET 路由,以防你使用ASP路由,然后不需要在查询字符串中使用传统的URL 。

http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx

分享这是我的解决方案,多亏了 canavar 。

如果你有类似的内容:


"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"

或者像这样:


"https://www.something.com/index.html?a=123&b=4567"

你只需要用户输入的部分,这样就可以了:


String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery,"/");

这将导致以下结果:


"http://localhost:1234/"
"https://www.something.com/"

如果你只想要 http://和第一个斜杠之间的部分


string url = Request.Url.Host;

如果从此页面调用,将返回 stackoverflow.com

下面是完全分解

如果你想得到

 
localhost:2806 

 

来自


http://localhost:2806/Pages/

然后使用:


HttpContext.Current.Request.Url.Authority

搜索在这里网页上找到了我,但这并不是我想要的。 在这里投递以防其他人在这里网页上寻找我。

如果你只有一个字符串值,则有两种方法。

.NET 方式:

@Canavar, 相同,但你可以实例化一个新的Uri对象


String URL ="http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);

这意味着你可以使用同样的方法,e.g.


string url = uri.AbsoluteUri;
//http://localhost:1302/TESTERS/Default6.aspx

string host = uri.host
//localhost

正规表达式 方式:

获取 URL ( 正规表达式 )的部分

...