首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET Request 物件取得 URL 資訊的各屬性差異總整理

     編輯:ASP.NET 基礎

前言

ASP.NET 開發中常需解析 URL 以取得路徑、查詢字串、主機名稱等資訊。HttpRequest 提供多個屬性,但名稱相似、用途不同,容易混淆。本文以實測對照表方式,釐清各屬性差異,並提供快速查詢參考。

測試環境與網址

測試網址:https://www.test.com/testweb/default.aspx(無查詢字串)

屬性對照表

屬性/方法 回傳值 說明
Request.ApplicationPath/testweb應用程式虛擬根目錄路徑
Request.CurrentExecutionFilePath/testweb/default.aspx目前正在執行的檔案虛擬路徑(含 Server.Transfer 後的目標頁面)
Request.FilePath/testweb/default.aspx要求檔案的虛擬路徑(不含查詢字串)
Request.Path/testweb/default.aspx完整虛擬路徑(含 PathInfo,不含查詢字串)
Request.PathInfo(空字串)路徑資訊(位於 .aspx 之後、查詢字串之前的部分)
Request.PhysicalApplicationPathE:\WWW\testweb\應用程式實體磁碟路徑
Request.PhysicalPathE:\WWW\testweb\default.aspx要求檔案的實體磁碟路徑
Request.RawUrl/testweb/default.aspx原始 URL(虛擬路徑 + 查詢字串,不含主機)
Request.Url.AbsolutePath/testweb/default.aspxUri 物件的絕對路徑(虛擬路徑)
Request.Url.AbsoluteUrihttps://www.test.com/testweb/default.aspx完整絕對 URL(含通訊協定、主機、路徑、查詢字串)
Request.Url.Hostwww.test.com主機名稱
Request.Url.LocalPath/testweb/default.aspx本機路徑(虛擬路徑,同 AbsolutePath)

含查詢字串時的取得方式

當 URL 為 https://www.test.com/testweb/default.aspx?id=123&name=abc 時:

  • Request.RawUrl → /testweb/default.aspx?id=123&name=abc
  • Request.Url.PathAndQuery → /testweb/default.aspx?id=123&name=abc
  • Request.Url.Query → ?id=123&name=abc
  • HttpContext.Current.Request.Url.PathAndQuery.ToString() 同 Request.Url.PathAndQuery

常用情境快速選擇指南

需求 建議屬性
取得完整 URL(含查詢字串)Request.Url.AbsoluteUri 或 Request.Url.ToString()
取得虛擬路徑(不含查詢字串)Request.Path 或 Request.FilePath
取得查詢字串字典Request.QueryString
取得應用程式根目錄虛擬路徑Request.ApplicationPath
取得實體磁碟路徑(對應檔案)Request.PhysicalPath
判斷是否為特定頁面(不受 Transfer 影響)Request.FilePath
判斷目前實際執行頁面(受 Transfer 影響)Request.CurrentExecutionFilePath

補充:Server.Transfer 時的差異

若 PageA.aspx 執行 Server.Transfer("PageB.aspx"):

  • Request.FilePath 仍為 /PageA.aspx
  • Request.CurrentExecutionFilePath 變為 /PageB.aspx

此特性常用於判斷「原始要求頁面」vs「目前執行頁面」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved