当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中获取我所在页面的完整URL

如何解决《如何在C#中获取我所在页面的完整URL》经验,为你挑选了8个好方法。

我需要能够从用户控件获取我所在页面的完整URL.这只是将一堆Request变量连在一起的问题吗?如果是这样的?还是有更简单的方式?



1> 小智..:

这是我通常参考此类信息的列表:

Request.ApplicationPath :   /virtual_dir
Request.CurrentExecutionFilePath :  /virtual_dir/webapp/page.aspx
Request.FilePath :  /virtual_dir/webapp/page.aspx
Request.Path :  /virtual_dir/webapp/page.aspx
Request.PhysicalApplicationPath :   d:\Inetpub\wwwroot\virtual_dir\
Request.QueryString :   /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.AbsolutePath :  /virtual_dir/webapp/page.aspx
Request.Url.AbsoluteUri :   http://localhost:2000/virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Host :  localhost
Request.Url.Authority : localhost:80
Request.Url.LocalPath : /virtual_dir/webapp/page.aspx
Request.Url.PathAndQuery :  /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Port :  80
Request.Url.Query : ?q=qvalue
Request.Url.Scheme :    http
Request.Url.Segments :  /
    virtual_dir/
    webapp/
    page.aspx

希望你会发现这很有用!



2> travis..:

我通常Request.Url.ToString()用来获取完整的URL(包括查询字符串),不需要连接.


@KrunalSisodiya我不认为URL的哈希值会被发送到服务器,但我可能是错的.
如果URL包含"#",那么#之后的所有字符都不会包含在内.

3> DevelopingCh..:
Request.Url.AbsoluteUri

这家酒店提供您所需要的一切,一次性简洁.


+1.这是最好的答案.应优先于Request.Url.ToString().

4> FlySwat..:

Request.RawUrl


这不会返回完整的URL.如果完整网址是http://www.blah.com/1.1/home/main?a=1 Request.RawUrl将返回1.1/hom/main?a = 1

5> Christian Ha..:

如果您需要完整的URL作为从http到查询字符串的所有内容,您将需要连接以下变量

Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS
Request.ServerVariables("SERVER_NAME") 
Request.ServerVariables("SCRIPT_NAME") 
Request.ServerVariables("QUERY_STRING")


这不考虑非标准端口(即不使用端口80作为http)

6> Serj Sagan..:

因为ASP.NET Core你需要拼写出来:

@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")

或者您可以在视图中添加using语句:

@using Microsoft.AspNetCore.Http.Extensions

然后

@Context.Request.GetDisplayUrl()

_ViewImports.cshtml可能是一个更好的地方@using



7> 小智..:

最好使用Request.Url.OriginalStringRequest.Url.ToString()(根据MSDN)



8> RedWolves..:

谢谢大家,我结合你的答案@Christian和@Jonathan满足我的特殊需求.

"http://" + Request.ServerVariables["SERVER_NAME"] +  Request.RawUrl.ToString()

我不需要担心安全的http,需要servername变量,RawUrl处理来自域名的路径,并包含查询字符串(如果存在).


您还应该知道RawUrl与Request.Url不同,如果正在使用url映射,则表示原始的,未映射的请求URL.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有