How do I get the full url of the page I am on in C#
我需要能够从用户控件获取我所在页面的完整URL。只是将一组请求变量连接在一起的问题吗?如果是,哪一个?还是有更简单的方法?
以下是我通常参考的关于此类信息的列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 |
希望你会发现这很有用!
我通常使用
1 | Request.Url.AbsoluteUri |
这个属性做你需要的一切,都在一个简洁的调用中。
如果需要完整的URL作为从http到querystring的所有内容,则需要连接以下变量
1 2 3 4 | Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS Request.ServerVariables("SERVER_NAME") Request.ServerVariables("SCRIPT_NAME") Request.ServerVariables("QUERY_STRING") |
请求网址
对于
1 | @($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}") |
或者可以向视图中添加using语句:
1 | @using Microsoft.AspNetCore.Http.Extensions |
然后
1 | @Context.Request.GetDisplayUrl() |
江户十一〔4〕可能是江户十一〔5〕更好的地方。
使用
谢谢各位,我结合了你们的回答@Christian和@Jonathan来满足我的特殊需要。
1 | "http://" + Request.ServerVariables["SERVER_NAME"] + Request.RawUrl.ToString() |
我不需要担心安全HTTP,需要servername变量,rawurl处理域名中的路径,如果存在,还包括querystring。
如果您还需要端口号,可以使用
1 | Request.Url.Authority |
例子:
1 2 3 4 5 6 7 8 9 10 | string url = Request.Url.Authority + HttpContext.Current.Request.RawUrl.ToString(); if (Request.ServerVariables["HTTPS"] =="on") { url ="https://" + url; } else { url ="http://" + url; } |
尝试以下操作-
1 2 | var FullUrl = Request.Url.AbsolutePath.ToString(); var ID = FullUrl.Split('/').Last(); |