在 C# 中,用 Request 对象来获取 Url 的各种路径,包括上一页 Url、域名、绝对路径、相对路径和物理路径。虽然在某些情况下,无法获取到 Url,但可以获取到大部分情况下的 Url,下面一一介绍。
一、获取当前页和前一页Url
1、获取当前页:HttpContext.Current.Request.Url.PathAndQuery;
说明:PathAndQuery 意思已经很明显,就是取路径和参数(即完整路径),浏览器地址栏显示的是什么就获到到什么。
2、获取前一页:Page.Request.UrlReferrer;
说明:Referrer 表示前一页(上一页)。
3、注意:如果当前是由一页的 Javascript 导航过来的,则无法通过上述方法获取到 Url,但可以把 Url 保存到 Cookies。
2、获取域名
使用语句:Request.Url.Host;
说明:仅获取 Url 中的域名部分。
3、获取绝对(完全)网址
使用语句:Request.Url.AbsoluteUri;
说明:Absolute 是绝对的意思,知道这个意思就很容易理解了,也就是 ie 地址栏显示的是什么就获取到什么。
4、获取绝对路径
使用语句:Request.RawUrl;(Request.Url.PathAndQuery;) 和 Request.Url.AbsolutePath;
说明:raw 是不完整的意思,RawUrl 就是获取除域名外的路径,如 /ie/index.aspx;PathAndQuery 和 AbsolutePath 也一样。
提示:
HttpContext.Current.Request.Url.Query;(仅获取Url后的参数,如 域名/pub/Item.aspx?type=ie,则结果为 ?type=ie)
5、获取文件路径
使用语句:Request.CurrentExecutionFilePath;、Request.FilePath; 和 Request.Path;
说明:CurrentExecutionFilePath 意思是当前执行文件路径,FilePath 意思是文件路径,Path 意思是路径;无论用那一个,获取到的结果都一样,也就是获取除域名外的文件路径,如 /ie/index.aspx。
6、获取物理路径
1、使用语句:Request.PhysicalApplicationPath;
说明:PhysicalApplicationPath 意思是物理应用程序路径,也就是获取网站的根目录所在磁盘的物理路径,假如网站在放在 d:webhost 目录下,则获取到就是 d:webhost。
2、使用语句:Request.PhysicalPath;
说明:PhysicalPath 意思是物理路径,即获取当前访问网页的物理路径,假如网站在放在 d:webhost 目录下,当前访问网页是主页(index.aspx),则获取到是 d:webhostindex.aspx。
3、使用语句:Request.ApplicationPath;
说明:ApplicationPath 意思是应用程序路径,即获取当前访问网页的根目录,如 当前访问网页是 /ie/index.aspx 和 /word/index.aspx,则都获取到 /。