A.NET 4.0 URL路由改进支持(3)[图]_.NET概论及软件使用_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

A.NET 4.0 URL路由改进支持(3)[图]

作者:黑客防线网安ASP维护基地 来源:黑客防线网安ASP维护基地 浏览次数:0

本篇关键词:改进支持路由 
黑客防线网安网讯:     本文演示程序使用LINQ-to-SQL工具实现数据访问。你会在App_Code文件夹下发现一个Northwind.dbml文件,它创建了一个NorthwindDataContext类。ViewProduct.aspx页面中包含一个DetailsVie...

     本文演示程序使用LINQ-to-SQL工具实现数据访问你会在App_Code文件夹下发现一个Northwind.dbml文件它创建了一个NorthwindDataContext类ViewProduct.aspx页面中包含一个DetailsView控件其中的字段用于显示产品的名称,供应商,单位数量,价格以及其他相关信息。页面的代码隐藏类具有以下(省略了部分)代码:
    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对象上。在此,Product属性读取Page.RouteData集合中的URL中的ProductName参数值,使用的语法是:Page.RouteData.Values["ProductName"].然后,在LINQ查询中使用ProductName参数值来取回有关具体产品的信息。
    下面的屏幕截图显示了运行中的ViewProduct.aspx页面。该网页对应的网址是/Products/Chai,有关该Chai的详细信息显示于此页面中。


 
    在ASP.NET 4.0中设置ASP.NET路由的过程就是这样!但是,在ASP.NET 3.5 SP1中实现上述过程需要五个步骤,而不是二个步骤。
    三、生成路由友好的URL
    在创建超链接或者把用户通过Response.Redirect方法从一个网页导航到另一个页面时,使用定义于Global.asax中的路由模式(而不是使用它的实际名称来引用ASP.NET页面模式)是比较理想的选择。例如,有一个ViewProducts.aspx页面,其中有一个链接-通过此链接可以返回到显示选定产品类别的所有产品信息,而这个产品类别链接到Categories/CategoryName,其中CategoryName是产品类别名,要显示的是此类别产品的信息。此时,你可以使用Page.GetRouteUrl方法生成这些路由友好的URL.这个方法有许多重载版本,但最简单的版本仅接收两个参数:路由名称和参数的值。
    例如,为了取得返回到Categories/CategoryName页面的正确的URL,可以使用以下语法:
    Page.GetRouteUrl("View Category", new { CategoryName = CategoryName });
    在这里,"View Category"是定义于文件Global.asax中路由规则的名称,而CategoryName是出现在URL中的CategoryName参数的值。另一个更具体的例子是:
    Page.GetRouteUrl("View Category", new { CategoryName = "Beverages" });
    另外,Response.Redirect方法还有另一个新的版本,名为Response.RedirectToRoute.像Page.GetRouteUrl方法一样,这个方法能够接收路由名称和参数值,然后将用户重定向到适当的、路由友好的网址。下面的示例演示了如何将用户重定向到一个特定产品的视图:
    Response.RedirectToRoute("View Product", new { ProductName = ProductName });
    四、结论
    ASP.NET路由是.NET框架提供的一个功能强大的库,通过它可以实现URL与底层物理文件间的彻底解耦。自从ASP.NET 3.5 SP1引入后,ASP.NET路由被初步应用于开发ASP.NET MVC应用程序。虽然它也可以用于Web窗体应用程序中,但是配置它需要繁琐的步骤,而且看上去会造成不必要和重复的代码。
    ASP.NET 4.0中加强了ASP.NET路由库,并针对Web窗体应用程序提供了更加灵活的直观的使用场景支持。正如本文中你所看到的,把一个路由模式映射到ASP.NET页面只需要在Global.asax中添加几行代码,而不再需要创建一个自定义的路由处理类。在底层,ASP.NET路由库会自动把路由参数保存到RouteData集合中-然后,你可以从Page类中访问它。而且,这些RouteData值也可以通过像SqlDataSource和ObjectDataSource这样的数据源控件以声明进行访问。

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14310-1.html
网站维护教程更新时间:2012-03-30 05:45:08  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer