一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中實現URL導向》篇

系列文章導航:

VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改進 》篇

VS 2010 和 .NET 4.0 系列之《干凈的Web.Config文件 》篇

VS 2010 和 .NET 4.0 系列之《起始項目模板》篇

VS 2010 和 .NET 4.0 系列之《多定向支持》篇

VS 2010 和 .NET 4.0 系列之《多顯示器支持》篇

VS 2010 和 .NET 4.0 系列之《代碼優化的Web開發Profile》篇

VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代碼片段支持》篇

VS 2010 和 .NET 4.0 系列之《自動啟動ASP.NET應用》篇

VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中實現URL導向》篇

VS 2010 和 .NET 4.0 系列之《在VS 2010中查詢和導航代碼》篇

VS 2010 和 .NET 4.0 系列之《VS 2010代碼智能提示的改進》篇

VS 2010 和 .NET 4.0 系列之《添加引用對話框的改進》篇

VS 2010 和 .NET 4.0 系列之《內置圖表控件》篇


  這是我針對即將發布的VS 2010 和 .NET 4所撰寫的 貼子系列的第八篇。今天的博客討論ASP.NET 4中一個很酷的新運行時特性 - 對基于Web Forms的網頁使用URL導向(routing)的功能。

  什么是URL導向(Routing)?

  URL導向是我們最先在ASP.NET 3.5 SP1中引入的功能,為ASP.NET MVC應用程序所用,以呈示干凈的,SEO友好的“web 2.0” URLs。URL導向讓你配置一個應用以接受并不映射到實際文件的請求URL,你可以使用導向來定義對用戶來說在語義上有富有含義,有助于搜索引擎優化(SEO)的URL。

  例如,一個顯示產品分類的傳統網頁的URL很可能是象下面這樣的:

     http://www.mysite.com/products.ASPx?category=software

  使用ASP.NET 4中的URL導向引擎,你現在可以配置應用來接受下述URL來顯示同樣的信息:

     http://www.mysite.com/products/software

  在ASP.NET 4.0中,象上面這樣的URL現在既可映射到ASP.NET MVC控制器類,也可以映射到基于ASP.NET Web Forms的網頁。

  使用ASP.NET MVC映射URL

  ASP.NET 3.5 SP1中引入的URL導向引擎提供了一個強有力的方式來處理進到服務器中來的URL。一般地,作為應用起始代碼的一部分,你編寫代碼將匹配特定URL格式的URL注冊/映射到代碼處理器上。

  下面是一個例子,你如何可以使用目前的ASP.NET MVC將/products/softwareURL映射到擁有一個名叫“Browse”的action方法的名為“Products”的控制器類上:

  上面MapRoute()輔助方法的第一個參數,“products-browse”,是該路徑的友好名稱。第二個參數,“products/{category}”,則是匹配/products/software URL的URL過濾器,它會將URL的第二節當作一個名為“category”的參數值處理,然后這個參數會被傳到ProductsController的Browse() action 方法中做處理。

  使用ASP.NET Web Forms映射URL

  除了映射到ASP.NET MVC控制器外,ASP.NET 4.0 現在還允許你使用URL導向引擎來將URL映射到ASP.NET Web Forms網頁上。

  下面是一個例子,你如何可以使用ASP.NET 4.0中新的MapPageRoute()輔助方法來將 /products/software URL映射到處于應用根目錄下的“Products.ASPx”網頁之上:

  MapPageRoute()輔助方法的前二個參數,與MapRoute()的一樣。第一個參數提供了路徑的友好名稱,第二個參數指定了所匹配的URL格式。但第三個參數,指向Products.ASPx網頁來處理,而不是控制器類。你也可以對MapPageRoute()指定額外的參數,來利用象“路徑約束”這樣的特性和提供“默認參數值”,就象在基于ASP.NET MVC的路徑注冊中一樣。

  然后在Products.ASPx網頁中,你可以編寫象下面這樣的代碼,使用ASP.NET 4.0中新的Page.RouteData屬性來獲取通過/products/{category} URL 過濾器映射而來的“category”參數的值,然后將分類產品進行數據綁定來顯示:

  除了使用象上面這樣的代碼、用編程的手法來獲取傳進來的路徑參數外,你也可以在任何ASP.NET DataSource控件中,利用新的聲明式<ASP:routeparameter>控件,聲明式地綁定來自路徑的值。例如,在下面,我們使用了<ASP:routeparameter> 語句,將SELECT語句的@category參數綁定到URL路徑中/products/{category}參數:

  ASP.NET Web Form中獲取URL

  ASP.NET中的URL導向引擎既可以用來將進到服務器中來(incoming)的URL映射到代碼處理器上,也可使用同樣的映射注冊邏輯,使用編程的手法生成輸出到客戶端(outgoing)的URL。

  例如,在上面,當我們映射 /products/{category} URL時,我們給了它一個友好的名稱,叫“products-browse”。這還允許我們使用新的Page.GetRouteUrl()輔助方法,查詢URL導向系統中的路徑,或者,指定路徑針對的參數,然后獲取映射到路徑的實際URL。例如,下面的代碼將獲取其值為“/products/software”的URL:

  你可以在你的后臺代碼文件中或你的 .ASPx標識中使用上述輔助方法。

  現在還有一套Response.RedirectToRoute()方法,可以為你所用來將用戶重新定向到一個路徑(無論是MVC還是Web Forms),同時還可以傳遞參數。

  處理PostBack場景

  ASP.NET 4.0中的URL導向完全支持postback場景,<form runat=”server”> 控件會自動地輸出導致頁面顯示的同個URL。例如,如果你用/products/software URL訪問一個網頁,其中的服務器端的<form runat=”server”>控件會輸出一個<form action=”/products/software”> HTML元素到客戶端,這意味著,網頁上發生的任何postback場景都會保留原先的URL。

  這使得在Web Forms和 postback場景中支持干凈的,SEO友好的URL容易之極,避免了今天大家在使用URL重寫模塊取得類似效果時需要采用的一些招術。

  結束語

  ASP.NET 4.0 方便了干凈的,SEO友好的URL的實現, 既可通過ASP.NET MVC來實現,現在又可通過ASP.NET Web Forms來實現(你還可以有混合了兩者的應用)。

  URL導向引擎使得注冊任何形狀或格式的URL,并將它們映射到任何你想要的處理器容易之極。因為URL導向引擎既可用于映射進來的URL,也可用于生成輸出的URL,你可以在以后改變URL映射,而不必修改任何特定于網頁或控制器的代碼來反映這些變動,極大地方便了SEO優化的應用的建造。

  希望本文對你有所幫助,

  Scott

NET技術VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中實現URL導向》篇,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 一男一女一级毛片 | 玖玖玖视频在线观看视频6 玖玖免费 | 一级特黄色毛片免费看 | 国产精品视频一区二区三区不卡 | 999成人精品视频在线 | 日日夜夜拍拍 | 免费国产精品视频 | 亚洲欧美日韩在线精品一区二区 | 亚州欧美 | 碰碰碰人人澡人人爱摸 | 一本色道加勒比海在线 | 韩国一级毛片视频免费观看 | 一区二区高清在线观看 | 国产成人精品免费视 | 中文字幕天天躁日日躁狠狠躁97 | 亚洲图片小说网 | 91精品国产麻豆国产自产在线 | 中文字幕日韩欧美一区二区三区 | 亚洲激情 欧美 | 日韩精品中文字幕久久 | 成人国产精品999视频 | 午夜激情视频在线播放 | 亚洲丝袜天堂 | 久久综合九色综合77 | 站长推荐国产精品视频 | 激情综合网婷婷 | 高清在线观看免费 | 久久不射网| 成人狠狠色综合 | 色老板导航 | 午夜欧美性欧美 | 欧美一区二区三区视频 | 一区二区三区舞蹈区 | 日韩在线播放中文字幕 | 日韩理论片在线看免费观看 | 成人小视频在线观看 | 99国产精品免费视频观看 | 天天做.天天爱.天天综合网 | 中文字幕永久免费视频 | 欧洲成人r片在线观看 | 6080yy午夜不卡一二三区久久 |