谁能帮助我在获得ASP当前工作页面的URL。NET在c# ?


试试这个:

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

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

string url = Request.Url.Host;

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

下面是完整的分析


我搜索了一下这个页面,但这并不是我想要的。在这里发布,以防其他人也在这个页面上寻找我。

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

net道:

和@Canavar一样,但是你可以实例化一个新的Uri对象

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

这意味着你可以使用相同的方法,例如:

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

string host = uri.host
// localhost

正则表达式:

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


只是分享这是我的解决方案,感谢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/"

我想返回绝对路径就足够了。

 Path.GetFileName( Request.Url.AbsolutePath )

使用先;


如果你想要

localhost:2806 

http://localhost:2806/Pages/ 

然后使用:

HttpContext.Current.Request.Url.Authority

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

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

示例:(示例URL)

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

CODE

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

输出

Host: localhost
Authority: localhost:60527
Port: 60527
AbsolutePath: /WebSite1test/Default2.aspx
ApplicationPath: /WebSite1test
AbsoluteUri: http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString1=2
PathAndQuery: /WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2

你可以复制粘贴上面的示例代码,并在asp.net web表单应用程序中使用不同的URL运行它。

我也推荐阅读ASP。如果你可能使用ASP路由,那么你不需要使用传统的URL与查询字符串。

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


给那些需要全局路径/url的人一个提示。asax文件;

如果你需要全局运行。asax > Application_Start和你的应用池模式是集成的,然后你会收到以下错误:

请求在此上下文异常中不可用 Application_Start。

在这种情况下,你需要使用这个:

System.Web.HttpRuntime.AppDomainAppVirtualPath

希望能帮助别人。


请求。Rawurl会给出当前页面的内容 它给出了您需要的确切路径

使用HttpContext.Current.Request.RawUrl