如何用C#代码后置获取当前URL及带参数的页面文件名?
在ASP.NET中获取带查询字符串的当前URL及页面文件名+参数
刚好做过类似的需求,给你两个实用的解决方案,都是ASP.NET代码后置(Code-Behind)里直接能用的:
1. 获取带查询字符串的当前完整URL
要拿到包含查询字符串的完整当前URL,直接用Request.Url相关属性就可以,非常简单:
// 两种写法效果一致,任选其一 string fullUrl = Request.Url.ToString(); // 或者 string fullUrl = Request.Url.AbsoluteUri;
执行后会返回类似 https://mysite.com/folder1/car.aspx?car_id=1®ion=3 的完整地址,包含协议、域名、路径和查询字符串。
2. 获取页面文件名+查询字符串(如car.aspx?car_id=1®ion=3)
如果只需要文件名+查询字符串这部分,有两种可靠的实现方式:
方式一:利用URL Segments(无需额外命名空间)
通过Request.Url.Segments获取URL的分段,取最后一段就是文件名,再拼接查询字符串:
// 获取URL最后一段(即页面文件名,如car.aspx) string fileName = Request.Url.Segments.Last(); // 获取完整查询字符串(包含开头的?,如?car_id=1®ion=3) string queryString = Request.Url.Query; // 拼接得到目标结果 string targetResult = fileName + queryString;
方式二:用Path类提取文件名(需引入System.IO)
如果习惯用文件操作类来处理,也可以用Path.GetFileName提取文件名,再拼接查询串,同时处理无查询串的情况:
// 记得先引入命名空间 using System.IO; string fileName = Path.GetFileName(Request.FilePath); string queryString = Request.QueryString.ToString(); // 避免没有查询串时多出一个? string targetResult = fileName + (string.IsNullOrEmpty(queryString) ? "" : "?" + queryString);
两种方式都能得到你需要的 car.aspx?car_id=1®ion=3 格式的字符串,根据自己的编码习惯选择就行。
内容的提问来源于stack exchange,提问作者Pham X. Bach
相关产品推荐
相关产品推荐

