日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET 如何取得 Request URL 的各個部分

發布時間:2025/7/14 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET 如何取得 Request URL 的各個部分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在開發網頁應用程式,時常需要去解析網址(Request.Url)的每個片段,進行一些判斷。例如說?"http://localhost:1897/News/Press/Content.aspx/123?id=1#toc",我們想要取得網址裡第一層目錄的名字(News)用以判斷不同的頁面標題(Page Title)。

我看很多人都用字串的 IndexOf 方法與 Substring 方法:

Request.Url.PathAndQuery.Substring(1, Request.Url.PathAndQuery.IndexOf("/", 1)-1)

這實在太埋沒 .NET 的強大設計了,事實上在 Request 物件就已經提供很多方便的屬性(Property)可供取得網址的片段。

底下這張表就是各種跟 Browser Request 的網址相關的屬性與用法:

?

網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc
Request.ApplicationPath/
Request.PhysicalPathD:\Projects\Solution\web\News\Press\Content.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath)D:\Projects\Solution\web\News\Press
Request.PhysicalApplicationPathD:\Projects\Solution\web\
System.IO.Path.GetFileName(Request.PhysicalPath)Content.aspx
Request.CurrentExecutionFilePath/News/Press/Content.aspx
Request.FilePath/News/Press/Content.aspx
Request.Path/News/Press/Content.aspx/123
Request.RawUrl/News/Press/Content.aspx/123?id=1
Request.Url.AbsolutePath/News/Press/Content.aspx/123
Request.Url.AbsoluteUrihttp://localhost:1897/News/Press/Content.aspx/123?id=1
Request.Url.Schemehttp
Request.Url.Hostlocalhost
Request.Url.Port1897
Request.Url.Authoritylocalhost:1897
Request.Url.LocalPath/News/Press/Content.aspx/123
Request.PathInfo/123
Request.Url.PathAndQuery/News/Press/Content.aspx/123?id=1
Request.Url.Query?id=1
Request.Url.Fragment?
Request.Url.Segments/
News/
Press/
Content.aspx/
123

?

所以當你看了這張表之後,你還會想用 Request.Url.PathAndQuery.Substring(1, Request.Url.PathAndQuery.IndexOf("/", 1)-1) 這種寫法嗎?

用這樣寫 Request.Url.Segments[1].Replace("/", "") 不是又短又直覺嗎? ^_^

以下是產生以上表格的程式碼:

??? protected void Page_Load(object sender, EventArgs e)
??? {

??????? StringBuilder sb = new StringBuilder();

??????? sb.Append("<table cellpadding=3 cellspacing=0 border=1>");

??????? sb.Append("<tr><td colspan=2>");
??????? sb.Append("網址:"http://localhost:1897/News/Press/Content.aspx/123?id=1#toc">http://localhost:1897/News/Press/Content.aspx/123?id=1#toc");
??????? sb.Append("</td></tr>");

??????? // Request.ApplicationPath
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.ApplicationPath");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.ApplicationPath + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.PhysicalPath
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.PhysicalPath");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.PhysicalPath + "</b>");
??????? sb.Append("</td></tr>");

??????? // System.IO.Path.GetDirectoryName(Request.PhysicalPath)
??????? sb.Append("<tr><td>");
??????? sb.Append("System.IO.Path.GetDirectoryName(Request.PhysicalPath)");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + System.IO.Path.GetDirectoryName(Request.PhysicalPath) + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.PhysicalApplicationPath
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.PhysicalApplicationPath");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.PhysicalApplicationPath + "</b>");
??????? sb.Append("</td></tr>");

??????? // System.IO.Path.GetFileName(Request.PhysicalPath)
??????? sb.Append("<tr><td>");
??????? sb.Append("System.IO.Path.GetFileName(Request.PhysicalPath)");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + System.IO.Path.GetFileName(Request.PhysicalPath) + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.CurrentExecutionFilePath
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.CurrentExecutionFilePath");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.CurrentExecutionFilePath + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.FilePath
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.FilePath");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.FilePath + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Path
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Path");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Path + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.RawUrl
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.RawUrl");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.RawUrl + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.AbsolutePath
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.AbsolutePath");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.AbsolutePath + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.AbsoluteUri
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.AbsoluteUri");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.AbsoluteUri + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.Scheme
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.Scheme");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.Scheme + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.Host
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.Host");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.Host + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.Port
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.Port");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.Port + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.Authority
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.Authority");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.Authority + "</b>");
??????? sb.Append("</td></tr>");

??????? // local Request.Url.LocalPath
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.LocalPath");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.LocalPath + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.PathInfo
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.PathInfo");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.PathInfo + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.PathAndQuery
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.PathAndQuery");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.PathAndQuery + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.Query
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.Query");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.Query + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.Fragment
??????? // 原則上你應該無法從 Request.Url.Fragment 取得任何資料,因為通常 Browser 不會送出 #toc 這個部分
??????? sb.Append("<tr><td>");
??????? sb.Append("Request.Url.Fragment");
??????? sb.Append("</td><td>");
??????? sb.Append("<b>" + Request.Url.Fragment + "</b>");
??????? sb.Append("</td></tr>");

??????? // Request.Url.Segments
??????? sb.Append("<tr>");
??????? sb.Append("<td>");
??????? sb.Append("Request.Url.Segments");
??????? sb.Append("</td>");
??????? sb.Append("<td>");
??????? string[] segments = Request.Url.Segments;
??????? foreach (string s in segments)
??????? {
??????????? sb.Append("<b>" + s + "</b>");
??????????? sb.Append("<br/>");
??????? }
??????? sb.Append("</td>");
??????? sb.Append("</tr>");

??????? sb.Append("</table>");

??????? ltlTable.Text = sb.ToString();
??? }

注意事項

  • 當程式部署(Deploy)到 IIS 6 之後,假設你的網址是 http://localhost:1897/News/Press/Content.aspx/123??,IIS 不知為何會將問號 ( ? ) 給刪除掉,以致於 ASP.NET 使用 Request.Url.Query 是空字串!如果你的程式有判斷到這部分時就要特別注意,因為照理說應該會抓到才對!不知道是不是 IIS 6 的 Bug ?

轉載于:https://www.cnblogs.com/sofire/archive/2009/11/19/1606408.html

總結

以上是生活随笔為你收集整理的ASP.NET 如何取得 Request URL 的各個部分的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 偷偷操99| 30一40一50老女人毛片 | 鲁啊鲁在线视频 | 亚洲欧美制服丝袜 | 成人免费看高清电影在线观看 | 国产精品久久久久久久久久 | 人人人干 | 黄色毛毛片 | 国产凹凸一区二二区 | 一级淫片免费 | 男人的天堂网在线 | 亚洲网站av | 国产福利精品在线 | 999精品网站| 欧美日韩一区在线播放 | 手机看片福利一区 | 成人免费在线视频观看 | 麻豆网站在线看 | 国产一区二区成人 | 黄色网页在线播放 | av有码在线 | 欧美撒尿777hd撒尿 | 欧美男女啪啪 | 国产欧美一区二区三区在线 | 亚洲高潮 | 日韩国产传媒 | 久久久夜 | 久久99久久99精品中文字幕 | 国产精品破处 | 五月在线| 人人干干人人 | 不卡久久 | 国产视频福利在线观看 | 黄色91在线观看 | 欧美激情在线免费观看 | 成人av资源站 | 色涩网站| 国产精品视频入口 | 国产高清免费视频 | 免费观看黄色网页 | 婷婷丁香一区二区三区 | 91精品久久久久久久 | 日本免费在线 | 老司机深夜福利网站 | 久久久久久成人精品 | 成人高潮片免费网站 | 国产美女网站视频 | 精品国产网站 | av不卡一区| 四虎影院在线 | av天天射| 好吊一区二区三区视频 | av在线电影观看 | 撸撸在线视频 | 2021av| 亚洲六月丁香色婷婷综合久久 | 国产精品夜夜夜爽阿娇 | 三级免费 | 51精品国产人成在线观看 | 久久久久久久久免费看无码 | 日韩精品一区二区三区久久 | 色大师在线观看 | 色偷偷综合网 | 亚洲国产剧情在线观看 | www.日本黄 | 欧美极品jizzhd欧美爆 | 亚洲精品一品 | 国产成人av网站 | 午夜剧场免费在线观看 | 久久艹av | 在线视频一区二区三区 | www.浪潮av.com | 91成人免费 | 丰满人妻一区二区三区免费 | 欧美精品一区二区性色a+v | 天天做天天摸天天爽天天爱 | 免费国产精品视频 | 国产激情影院 | 在线成人免费观看 | 免费观看成年人视频 | 日本a在线 | 亚洲a在线观看 | 岳狂躁岳丰满少妇大叫 | 色花av| 亚洲特黄特色 | 亚洲一二区视频 | 欧美熟妇精品一区二区 | 拍国产真实乱人偷精品 | 又黄又爽一区二区三区 | 青青国产精品视频 | 亚洲一区二区自偷自拍 | 黄色网在线播放 | 人人av在线 | 久久久这里有精品 | 欧美乱日 | 精品成人一区二区三区久久精品 | 在线成人免费 | 中文免费在线观看 | 久久99精品久久只有精品 |