You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确获取包含虚拟目录的HTTP请求路径

解决方案

要获取包含虚拟目录的完整请求路径,你可以通过以下几种方式实现:

  • 拼接PathBase与Path
    HttpContext.Request.PathBase会存储应用所在的虚拟目录路径(即/web),将它与Request.Path拼接就能得到你需要的完整路径:

    string fullPath = HttpContext.Request.PathBase + HttpContext.Request.Path;
    // 最终结果为 /web/{guid}
    
  • 使用GetEncodedUrl()获取完整URL后提取路径
    如果你需要先拿到完整的请求URL(包含域名),再提取路径部分,可以用这个方法:

    string fullUrl = HttpContext.Request.GetEncodedUrl();
    string fullPath = new Uri(fullUrl).AbsolutePath;
    // 结果同样是 /web/{guid}
    
  • ASP.NET Core 3.0+ 专用方法GetPathByServer()
    该方法会直接返回包含虚拟目录的完整路径,无需手动拼接:

    string fullPath = HttpContext.Request.GetPathByServer();
    

补充说明

HttpContext.Request.Path的设计就是返回相对于应用虚拟目录的路径,所以只会得到/{guid};而PathBase对应虚拟目录部分,两者组合才是从根域名开始的完整路径。

内容的提问来源于stack exchange,提问作者A. Gladkiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 02:09:50