從Request.Url中獲取根網(wǎng)址的簡(jiǎn)單操作
在拼接絕對(duì)路徑的網(wǎng)址時(shí),經(jīng)常需要從Request.Url中獲取根網(wǎng)址(比如https://git.oschina.net),然后與相對(duì)路徑一起拼接為絕對(duì)路徑。
以前的做法如下:
var uri = Request.Url.Scheme + "://" + Request.Url.Host + "/userfile/img";
今天發(fā)現(xiàn)了更簡(jiǎn)單的方法:
var uri = Request.Url.GetLeftPart(UriPartial.Authority) + "/userfile/img";
得到的結(jié)果是:
https://git.oschina.net/userfile/img
補(bǔ)充:C# Request 獲取Url
1、獲取頁面,HttpContext.Current.Request也是Request
//獲取當(dāng)前頁面url string myurl = System.Web.HttpContext.Current.Request.Url.ToString(); //獲取上一頁面url string UrlReferrer = System.Web.HttpContext.Current.Request.UrlReferrer.ToString();
2、假設(shè)當(dāng)前頁完整地址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kell
"http://"是協(xié)議名 "www.test.com"是域名 "aaa"是站點(diǎn)名 "bbb.aspx"是頁面名(文件名) "id=5&name=kelli"是參數(shù) //獲取 完整url (協(xié)議名+域名+站點(diǎn)名+文件名+參數(shù)) string url = Request.Url.ToString(); url = "http://www.test.com/aaa/bbb.aspx?id=5&name=kelli"; //獲取 站點(diǎn)名+頁面名+參數(shù): string url = Request.RawUrl; string url = Request.Url.PathAndQuery; url= "/aaa/bbb.aspx?id=5&name=kelli"; //獲取 站點(diǎn)名+頁面名: string url = Request.Url.AbsolutePath; string url = Request.Path; url= "aaa/bbb.aspx"; //獲取 域名: string url = Request.Url.Host; url= "www.test.com"; //獲取 參數(shù): string url = Request.Url.Query; url= "?id=5&name=kelli"; //如果有端口的話 int port = System.Web.HttpContext.Current.Request.Url.Port;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
c#求點(diǎn)到直線的投影點(diǎn)坐標(biāo)
這篇文章主要介紹了c#求直線外一點(diǎn)到該直線的投影點(diǎn),大家參考使用吧2013-12-12基于C#實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的HTTP服務(wù)器實(shí)例
這篇文章主要介紹了基于C#實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的HTTP服務(wù)器的方法,詳細(xì)分析了http服務(wù)器的實(shí)現(xiàn)原理與相關(guān)技巧,以及對(duì)應(yīng)的注意事項(xiàng),需要的朋友可以參考下2014-12-12C#利用TreeView控件實(shí)現(xiàn)目錄跳轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了C#潤(rùn)滑利用TreeView控件實(shí)現(xiàn)目錄跳轉(zhuǎn)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2022-07-07C#實(shí)現(xiàn)觀察者模式(Observer?Pattern)的兩種方式
這篇文章介紹了C#實(shí)現(xiàn)觀察者模式(Observer?Pattern)的兩種方式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08C#單例模式(Singleton Pattern)實(shí)例教程
這篇文章主要介紹了C#單例模式(Singleton Pattern)的實(shí)現(xiàn)方法,主要講述了即時(shí)加載的單例模式、延遲加載的單例模式與線程安全的單例模式,需要的朋友可以參考下2014-09-09