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

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

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

       [ 2017年8月31日 ] 【

        protected void Page_Load(object sender, EventArgs e)

        {

        dvProductInfo.DataSource = new Product[] { Product };

        dvProductInfo.DataBind();

        }

        private Product _Product = null;

        protected Product Product

        {

        get

        {

        if (_Product == null)

        {

        string productName = Page.RouteData.Values["ProductName"] as string;

        NorthwindDataContext DataContext = new NorthwindDataContext();

        _Product = DataContext.Products.Where(p => p.ProductName == productName)。SingleOrDefault();

        }

        return _Product;

        }

        }

        在上面的Page_Load事件處理程序中,DetailsView控件被綁定到Product屬性返回的Product對(duì)象上。在此,Product屬性讀取Page.RouteData集合中的URL中的ProductName參數(shù)值,使用的語(yǔ)法是:Page.RouteData.Values["ProductName"].然后,在LINQ查詢中使用ProductName參數(shù)值來(lái)取回有關(guān)具體產(chǎn)品的信息。

        下面的屏幕截圖顯示了運(yùn)行中的ViewProduct.aspx頁(yè)面。該網(wǎng)頁(yè)對(duì)應(yīng)的網(wǎng)址是/Products/Chai,有關(guān)該Chai的詳細(xì)信息顯示于此頁(yè)面中。

      ASP.NET 4.0 URL路由改進(jìn)支持

        

        在ASP.NET 4.0中設(shè)置ASP.NET路由的過(guò)程就是這樣!但是,在ASP.NET 3.5 SP1中實(shí)現(xiàn)上述過(guò)程需要五個(gè)步驟,而不是二個(gè)步驟。

        三、生成路由友好的URL

        在創(chuàng)建超鏈接或者把用戶通過(guò)Response.Redirect方法從一個(gè)網(wǎng)頁(yè)導(dǎo)航到另一個(gè)頁(yè)面時(shí),使用定義于Global.asax中的路由模式(而不是使用它的實(shí)際名稱來(lái)引用ASP.NET頁(yè)面模式)是比較理想的選擇。例如,有一個(gè)ViewProducts.aspx頁(yè)面,其中有一個(gè)鏈接-通過(guò)此鏈接可以返回到顯示選定產(chǎn)品類別的所有產(chǎn)品信息,而這個(gè)產(chǎn)品類別鏈接到Categories/CategoryName,其中CategoryName是產(chǎn)品類別名,要顯示的是此類別產(chǎn)品的信息。此時(shí),你可以使用Page.GetRouteUrl方法生成這些路由友好的URL.這個(gè)方法有許多重載版本,但最簡(jiǎn)單的版本僅接收兩個(gè)參數(shù):路由名稱和參數(shù)的值。

        例如,為了取得返回到Categories/CategoryName頁(yè)面的正確的URL,可以使用以下語(yǔ)法:

        Page.GetRouteUrl("View Category", new { CategoryName = CategoryName });

        在這里,"View Category"是定義于文件Global.asax中路由規(guī)則的名稱,而CategoryName是出現(xiàn)在URL中的CategoryName參數(shù)的值。另一個(gè)更具體的例子是:

        Page.GetRouteUrl("View Category", new { CategoryName = "Beverages" });

        另外,Response.Redirect方法還有另一個(gè)新的版本,名為Response.RedirectToRoute.像Page.GetRouteUrl方法一樣,這個(gè)方法能夠接收路由名稱和參數(shù)值,然后將用戶重定向到適當(dāng)?shù)摹⒙酚捎押玫木W(wǎng)址。下面的示例演示了如何將用戶重定向到一個(gè)特定產(chǎn)品的視圖:

        Response.RedirectToRoute("View Product", new { ProductName = ProductName });

        四、結(jié)論

        ASP.NET路由是.NET框架提供的一個(gè)功能強(qiáng)大的庫(kù),通過(guò)它可以實(shí)現(xiàn)URL與底層物理文件間的徹底解耦。自從ASP.NET 3.5 SP1引入后,ASP.NET路由被初步應(yīng)用于開(kāi)發(fā)ASP.NET MVC應(yīng)用程序。雖然它也可以用于Web窗體應(yīng)用程序中,但是配置它需要繁瑣的步驟,而且看上去會(huì)造成不必要和重復(fù)的代碼。

        ASP.NET 4.0中加強(qiáng)了ASP.NET路由庫(kù),并針對(duì)Web窗體應(yīng)用程序提供了更加靈活的直觀的使用場(chǎng)景支持。正如本文中你所看到的,把一個(gè)路由模式映射到ASP.NET頁(yè)面只需要在Global.asax中添加幾行代碼,而不再需要?jiǎng)?chuàng)建一個(gè)自定義的路由處理類。在底層,ASP.NET路由庫(kù)會(huì)自動(dòng)把路由參數(shù)保存到RouteData集合中-然后,你可以從Page類中訪問(wèn)它。而且,這些RouteData值也可以通過(guò)像SqlDataSource和ObjectDataSource這樣的數(shù)據(jù)源控件以聲明進(jìn)行訪問(wèn)。

      首頁(yè) 1 2 3 尾頁(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