點擊這里給我發消息
點擊這里給我發消息
首 頁
網站案例
虛擬主機
企業郵箱
域名注冊
Flash制作
軟件開發
廣告設計
服務報價
激情唯誠
聯系我們
公告:熱烈慶祝南京唯誠網絡2010版官方網站改版成功!
 
當前位置 :南京網站建設>網頁學堂>列表  
ASP.NET 4當中Url Routing的支援
時間:2010-06-19 15:57 來源:南京網站建設 點擊:
TAG:
 

ASP.NET 4的Web Forms當中,最令人激賞的,則莫過于是URL Routing機制的全面支持。過去在ASP.NET 3.5 SP1當中,Web Forms或多或少就開始支持URL Routing機制,它讓我們在網址的呈現以及使用上更加的有彈性。

過去我們在ASP.NET當中,習慣于底下這樣的網址呈現方式:http://myWebSite/EditProduct.aspx?Id=1

但最近幾年REST風格的網站(或REST Web服務)興起,你常常會看到網址的呈現方式變成:http://myWebSite/Product/Edit/XBOX

上面這樣的網址有一些好處,首先,網址可以更明確的表達想要呈現的功能,或是要后端應用程序進行的行為;其次,上面這樣的網址由于并非對應到后端某一個實體檔案(.aspx.cs),而是透過Routing機制來轉派,因此相較過去的網址有著更高的安全性。

也就是說,在這樣的架構下,ASP.NET應用程序的網址再也不只是對應到實體檔案的路徑,而是可用來表達要執行的功能。至于實際執行時要處理的程序代碼或呈現結果的網頁,也并非一定要是由網址所指向的實體頁面。這也讓我們在開發應用程序時有更大的彈性,例如一般的部落格網站網址可能是『http://blog/studyhost』,由于blog網站多半都可以開放給多人申請,理所當然的每一個用戶都有類似『http://blog/申請者ID』這樣的網址。當然,對應到ASP.NET的后端應該都是同一套程序來處理,在過去的ASP.NET應用程序當中,我們得要煞費一番工夫才能讓網站可以接受這樣的網址設計(把參數從QueryString轉變成REST風格),而現在,透過URL Routing機制很快地就能輕松搞定。

除此之外,還有另一個顯而易見的好處,采用REST風格的網址:http://myWebSite/Product/Edit/XBOX vs. http://myWebSite/EditProduct.aspx?Id=1

相較于傳統網址更容易被Google等搜索引擎查詢與檢索,畢竟上圖網址中的XBOX比起產品Id=1來得容易理解的多。那我們要如何在ASP.NET 4當中使用這樣的機制呢,您只需要透過新加入的Routes類別,利用MapPageRoute方法即可輕易的完成URL路由的指定,例如:

 

以下為引用的內容:

view plaincopy to clipboardprint?
protected void Application_Start(object sender, EventArgs e) {  
    RouteTable.Routes.MapPageRoute(  
        "TestRoute", "Search/{ProductName}", "~/WebForm1.aspx");   

protected void Application_Start(object sender, EventArgs e) {
    RouteTable.Routes.MapPageRoute(
        "TestRoute", "Search/{ProductName}", "~/WebForm1.aspx");
}

 

在Global.asax如此撰寫之后,當使用者在網址列鍵入:http://localhost:1031/Search/AK47

網頁(應用程序主控權)將被導引到WebForm1.aspx頁面,而在該頁面中則可以透過底下的方式來取得參數ProductName『AK47』:

 

以下為引用的內容:

view plaincopy to clipboardprint?
protected void Page_Load(object sender, EventArgs e) {  
    Response.Write("Searching Product Name : " +   
                Page.RouteData.Values["ProductName"]);  

protected void Page_Load(object sender, EventArgs e) {
    Response.Write("Searching Product Name : " +
                Page.RouteData.Values["ProductName"]);
}

 

這樣的設計方式,果然是方便容易許多,別小看這樣的機制,這讓我們開發大型的Web應用程序變為可能,配合我們后面要介紹的ASP.NET 4當中的DynamicData技術,我們得以輕易的開發出單一的一張.aspx網頁(一支程序),即可維護后端Schema不同的各種數據表的。不像過去ASP.NET 2.0時代,若后端數據庫有許多數據表要處理,我們幾乎得要為每一個數據表建立獨立的一張.aspx維護頁面,即便每一張.aspx網頁上的行為與程序代碼邏輯幾乎完全一樣(CRUD)。

更有趣的是,配合URL Routing機制的普及化,連過去我們熟悉的DataSource控件都增加了一個RouteParameter來共襄盛舉,如今ASP.NET 4.0 Web Forms可說是對URL Routing機制全面支持了:

 

以下為引用的內容:

view plaincopy to clipboardprint?
<asp:LinqDataSource ID="LinqDataSource1" runat="server"   
    ContextTypeName
="UrlRouting.DataClasses1DataContext" EntityTypeName
=""  TableName="Customers" Where="CompanyName
== @CompanyName"> 
    <WhereParameters> 
     <asp:RouteParameter Name="CompanyName" RouteKey
="CompanyName" Type="String" /> 
    </WhereParameters> 
</asp:LinqDataSource> 
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
    ContextTypeName=
"UrlRouting.DataClasses1DataContext" EntityTypeName
="" TableName="Customers" Where="CompanyName
 == @CompanyName">
    <WhereParameters>
     <asp:RouteParameter Name="CompanyName" RouteKey
="CompanyName" Type="String" />
    </WhereParameters>
</asp:LinqDataSource>

 

您會發現,透過上面這樣的語法,我們可以讓LinqDataSource進行數據查詢時where條件所使用的參數,直接引用URL Routing中的參數值,類似過去的QueryStringParameter,相當的方便好用。

(責任編輯:admin)
 
 
上一篇:Asp.Net 網站優化系列
下一篇:奢侈品如何進行網絡營銷
 


 推薦關注

 熱點關注

關于我們 | 工作機會 | 付款方式 | 網站制作 | 網頁制作 | 網頁設計 | 網絡公司 | 聯系我們 | 網站地圖
版權所有:南京唯誠信息技術有限公司 © 2005-2010 All Rights Reserved.
咨詢專線:400-657-0669 技術專線:025-83208669-808 傳真:025-83208669-803
地址:南京市鼓樓區廣州路37-1號江蘇科技大廈502室 郵編:210008 蘇ICP備05002558號
辽宁35选七最新开奖 天天彩选4最新开奖公告 金花股份股票 35选7开奖号码表38期 体彩福建36选7 02百家乐 街机捕鱼破解版 下载大唐麻将手机下载 山东快乐扑克开奖结果查询 一起捕鱼手机版下载 河南新快赢481走 p62最近30期开奖结果 股票论坛macd 今晚平特三连肖三中三 九五至尊棋牌苹果版在线安装 加拿大快乐8查询 网赚项目