有人可以帮助我在C#中获取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
如果你只是想要超文本传输协议://和第一个斜杠之间的部分
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 )
使用System.IO;
如果你想得到
localhost:2806
从
http://localhost:2806/Pages/
然后使用:
HttpContext.Current.Request.Url.Authority
有时您可能需要从URL获取不同的值。
下面的示例显示了提取URL不同部分的不同方法
示例:(示例URL)
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
代码
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
您可以复制粘贴上面的示例代码并在具有不同URLasp.netWeb表单应用程序中运行它。
我还建议阅读ASP. Net Routing,如果您可以使用ASP Routing,那么您不需要使用传统的URL和查询字符串。
http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx
为需要文件中路径/url的人提供global.asax提示;
如果您需要在global.asax>Application_Start中运行此操作,并且您的应用池模式为集成,那么您将收到以下错误:
请求在此上下文异常中不可用 Application_Start
在这种情况下,你需要使用这个:
System. Web. Http运行时。应用程序域应用程序虚拟路径
希望能帮助别人。
request.rawurl将给出当前页面的内容 它提供了您需要的确切路径
使用HttpContext.Current.Request.RawUrl
HttpContext.Current.Request.RawUrl