Request.url用法
2015-12-31 08:36
309 查看
原文: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 的網址相關的屬性與用法:
用這樣寫 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("網址:[url=http://blog.miniasp.com/post/2008/02/10///localhost:1897/News/Press/Content.aspx/123?id=1#toc sb.Append("</td></tr>"); [/url]"); // 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(); } |
相关文章推荐
- requirejs实验002. r.js合并文件. 初体验.
- OCUI storyboard & NIB
- 更新UI测试
- Easyui-DataGrid 查询,类序列化(构造匿名对象)
- IOS和安卓ui设计常用尺寸及基本知识
- 《算法竞赛入门经典2ndEdition 》例题5-6 团体队列(Team Queue, Uva540)
- 学习笔记UITableView、tablecell
- 安装duetdisplay遇到的问题
- mysql case else case_value
- ios UIAlertController
- IOS之[UIPageControl:引导页]
- UIAlertcontroller,UIAlertView
- 页面引入easyui时候遇到的问题
- 关于GRUB中的rhgb以及quiet参数的含义
- 如何在Tableview中使用UiTextFiled
- iOS UITableView(六) cell的移动
- 从客户端(&)中检测到有潜在危险的 Request.Path 值。
- 浅谈设计模式之builder模式
- 怎样使用easyUI
- npm-bluebird使用