[英]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.