亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁(yè) | 考試用書(shū) | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
        當(dāng)前位置:編程開(kāi)發(fā) > DotNET > ASP.Net > 文章內(nèi)容
        

      ASP.NET教程:ASP.NET4.0URL路由改進(jìn)支持

       [ 2017年8月31日 ] 【

        本文將重點(diǎn)討論ASP.NET在ASP.NET 4.0中的路由系統(tǒng)改進(jìn)支持。本文提供的演示程序是一個(gè)Web窗體應(yīng)用程序,這是一個(gè)羅斯文商貿(mào)網(wǎng)站的前端。它使用了ASP.NET路由支持來(lái)創(chuàng)造簡(jiǎn)潔且搜索引擎友好的網(wǎng)址。例如,/Categories/All將顯示所有類別,/Categories/Beverages將列出屬于飲料類的所有產(chǎn)品,而/Products/Chai將顯示有關(guān)產(chǎn)品Chai的細(xì)節(jié)信息。

        請(qǐng)注意,為了在ASP.NET 3.5 SP1中使用ASP.NET路由支持,你需要明確地在你的項(xiàng)目中添加對(duì)System.Web.Routing程序集的引用,并需要添加一些標(biāo)記到Web.config配置文件中。這些步驟在使用ASP.NET 4.0時(shí)不再需要,而且,在Global.asax文件中用于定義路由規(guī)則的語(yǔ)法更為短小、簡(jiǎn)單和具有可讀性。

        本文后面的內(nèi)容將給出在ASP.NET 4.0中使用ASP.NET路由的詳細(xì)步驟描述。

        二、使用ASP.NET 4.0路由

        下面給出在ASP.NET 4.0中使用ASP.NET路由的詳細(xì)描述。

        0. 前提

        本文提供的演示程序使用了新添加到ASP.NET 4.0中的ASP.NET路由功能。如果你使用Visual Studio 2010或Visual Web Developer 2010(或更高版本),那么你正好具備了這一前提。

        1.在文件Global.asax中定義路由規(guī)則

        要使用ASP.NET路由系統(tǒng),你需要在應(yīng)用程序啟動(dòng)時(shí)定義一個(gè)或多個(gè)路由。方法是,在你的項(xiàng)目中添加一個(gè)全局應(yīng)用程序類文件(Global.asax)。在這個(gè)文件中,我們將在Application_Start事件中注冊(cè)這些路由。

        定義于Global.asax文件中的路由指示什么樣的路由處理程序負(fù)責(zé)處理什么樣的URL模式。在MVC應(yīng)用程序中,一種流行的模式是Controller/Action/ID;這意味著針對(duì)/Products/View/Aniseed Syrup或Categories/Edit/Beverages的請(qǐng)求將由配置的路由處理程序來(lái)處理。在應(yīng)用程序中定義什么樣的路由方面,你可以擁有足夠的靈活性。例如,你可以定義模式的多個(gè)部分,定義缺少部分的默認(rèn)值,甚至還要定義針對(duì)某些輸入類型的限制部分。

        本文演示程序是一個(gè)簡(jiǎn)單的數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序,它使用了Northwind數(shù)據(jù)庫(kù),并接受下列模式的URL:

        /Categories/All-列出數(shù)據(jù)庫(kù)中所有產(chǎn)品類型;

        /Categories/CategoryName-列出相應(yīng)于特定類型的產(chǎn)品信息;

        /Products/ProductName-顯示特定產(chǎn)品的信息。

        因此,我在Global.asax文件的Application_Start事件處理程序中定義了三個(gè)路由,如以下代碼所示。(注:RouteTable對(duì)象和RouteCollection類位于System.Web.Routing命名空間。)

        在Application_Start方法中,我們調(diào)用了RegisterRoutes,并傳遞進(jìn)RouteCollection類型的參數(shù)RouteTable.Routes.接下來(lái),在RegisterRoutes方法中,調(diào)用RouteCollection類的MapPageRoute方法,它定義了一個(gè)路由模式到ASP.NET頁(yè)面的路由映射。例如,在第一次調(diào)用MapPageRoute方法時(shí),我們創(chuàng)建了一個(gè)命名為"All Categories"的路由模式-它負(fù)責(zé)把路由模式Categories/All映射到ASP.NET頁(yè)面~/ AllCategories.aspx.

        接下來(lái)的兩個(gè)MapPageRoute方法調(diào)用使用參數(shù)創(chuàng)建路由模式。其中,"View Product"路由把模式Products/{ProductName}映射到ASP.NET頁(yè)面~/ ViewProduct.aspx.這里,{ProductName}是一個(gè)參數(shù),意味著任何Products/ProductName形式的請(qǐng)求都將被路由到~/ViewProduct.aspx頁(yè)面。不久你就會(huì)看到,{ProductName}參數(shù)的值可以從頁(yè)面~/ViewProduct.aspx中通過(guò)Page.RouteData參數(shù)加以訪問(wèn)。

        2.創(chuàng)建處理請(qǐng)求的ASP.NET頁(yè)面

        使用ASP.NET 4.0,你不再需要?jiǎng)?chuàng)建一個(gè)自定義的路由處理程序類。當(dāng)你使用MapPageRoute方法時(shí),這一切都會(huì)由底層庫(kù)為你自動(dòng)完成。剩下的僅僅是,建立處理請(qǐng)求的ASP.NET頁(yè)面(AllCategories.aspx,CategoryProducts.aspx和ViewProduct.aspx)。當(dāng)然,本文示例中的這三個(gè)網(wǎng)頁(yè)相當(dāng)簡(jiǎn)單-它們都使用數(shù)據(jù)源控件,并以編程方式綁定到通過(guò)路由參數(shù)獲取的Categories或者Products表格的數(shù)據(jù)庫(kù)結(jié)果。

        void Application_Start(object sender, EventArgs e)

        {

        RegisterRoutes(RouteTable.Routes);

        }

        void RegisterRoutes(RouteCollection routes)

        {

        // Register a route for Categories/All

        routes.MapPageRoute(

        "All Categories", //路由名

        "Categories/All", //路由URL

        "~/AllCategories.aspx" //處理路由的網(wǎng)頁(yè)

       。;

        //處理Categories/{CategoryName}的路由

        routes.MapPageRoute(

        "View Category", //路由名

        "Categories/{*CategoryName}", //路由URL

        "~/CategoryProducts.aspx" //處理路由的網(wǎng)頁(yè)

       。;

        // Register a route for Products/{ProductName}

        routes.MapPageRoute(

        "View Product", //路由名

        "Products/{ProductName}", //路由URL

        "~/ViewProduct.aspx" //處理路由的網(wǎng)頁(yè)

       。;

        }

        本文演示程序使用LINQ-to-SQL工具實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)。你會(huì)在App_Code文件夾下發(fā)現(xiàn)一個(gè)Northwind.dbml文件,它創(chuàng)建了一個(gè)NorthwindDataContext類。ViewProduct.aspx頁(yè)面中包含一個(gè)DetailsView控件,其中的字段用于顯示產(chǎn)品的名稱,供應(yīng)商,單位數(shù)量,價(jià)格以及其他相關(guān)信息。頁(yè)面的代碼隱藏類具有以下(省略了部分)代碼:

      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見(jiàn)留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved