簡體   English   中英

在給定當前URL的情況下,是否有內置的創建絕對(完全限定)url來自相對路徑,例如“〜/ page.aspx”?

[英]Is there a built-in create an absolute (fully qualified) url from a relative path such as “~/page.aspx” given the current URL?

場景是我有一個應用程序相對url,如“〜/ path / to / page.aspx?query = string”。 我需要以編程方式創建對該頁面的Web請求,並且當前正在使用WebRequest.Create 問題是WebRequest.Create需要一個完全限定的URL,包括協議/域/端口等。

我可以訪問當前的Request.Url對象,但似乎沒有一種簡單的方法可以獲得保持協議(HTTP與HTTPS)的基本URL以及任何端口號以及應用程序的路徑。

我的意思是那里的所有信息,所以如果需要我可以只采取所有部分並將它們結合起來,但似乎它可能容易出錯,並且內置一些經過充分測試以完成工作的內容會很棒。 Page.ResolveUrl幾乎讓我,但它缺少協議和域/端口。

試試System.Web.VirtualPathUtility.ToAbsolute() 我已經習慣了(雖然在VB.NET中,但我確信它有一個C#等價物)並取得了很大的成功。 它甚至可以只轉換一個基本的虛擬路徑(即System.Web.VirtualPathUtility.ToAbsolute("~")將變成你的應用程序的基本URL)。

編輯

Request.Url.GetLeftPart(UriPartial.Authority)怎么樣? 這應該得到Url的Scheme和Authority部分(我認為是您引用的協議和域)。 這是MSDN文檔: http//msdn.microsoft.com/en-us/library/system.uri.getleftpart.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM