zoukankan      html  css  js  c++  java
  • 第十六章 提升用户体验 之 设计实现routes

    1. 概述

      ASP.NET MVC route 用来把URL映射到方法中的action,是用户和程序之间的桥梁。

      本章内容包括:定义route处理URL Pattern、应用route限制、忽略URL Pattern、添加route参数、定义areas分组。

    2. 主要内容

      2.1 定义route处理URL Pattern

        route解析的灵活性使得URL可以更加的易于理解,又增加了搜索引擎友好性。

        routes保存在一个独立的 RouteCollection对象中。 App_Start/RouteConfig.cs文件中的RegisterRoutes方法用来添加route。

    public static void RegisterRoutes(RouteCollection routes) 
    { 
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
        routes.MapRoute( 
            name: "Default", 
            url: "{controller}/{action}/{id}", 
            defaults: new { controller = "Home",  
                action = "Index", id = UrlParameter.Optional }, 
            constraints: new { id = @"d+" } 
         ); 
    }

      2.2 应用route限制

        route限制是一个附加的过滤器,有助于更精确快速的找到请求的资源。

    routes.MapRoute( 
        name: "Videos", 
        url: "Product/Details/{id}", 
        defaults: new { controller = "DVD", action = "Index",  
          Page = UrlParameter.Optional }, 
        constraints: new { id = @"[a-zA-Z]+"}); 
     
    routes.MapRoute( 
        name: "Videos2", 
        url: "Product/Details/{id}", 
        defaults: new { controller = "DVD", action = "Details", 
          Page = UrlParameter.Optional }, 
        constraints: new { id = @"d+" });

      2.3 忽略URL Pattern

        用于忽略的Route,是一种灵活的附加功能,可以提高站点的可预见性和安全性。

    routes.Ignore("{*allhtml}", new {allhtml=@".*.htm(/.*)?});

      2.4 添加route参数

        route参数可以为映射提供更多的灵活性。

    routes.MapRoute( 
                    name: "GeneralListDateRange", 
                    url: "{controller} /List/{param1}/{ param2}/{ param3}", 
                    defaults: new { controller = "Article", param1= UrlParameter.Optional,  
                           param2= UrlParameter.Optional, param3= UrlParameter.Optional }, 
     
    );

      2.5 定义areas

        area用来把一组controllers, views, 和 models 按照一定的功能性组织到一起,多用于大项目中。

        areas间的交互:

    @Html.ActionLink("Product Detail", "Product", "Detail", 
           new { area="ShoppingSite"}, null)

    3. 总结

      ① route使得站点url更加简单易读,有利于SEO.

      ② route的添加顺序很重要。先添加ignore route。

      ③ 创建route时,可以在任何可能为空的地方添加默认值。

      ④ Constraints是一种过滤请求Url的方式,可以根据不同route中的变量类型和内容来过滤。

      ⑤ 大型项目中,action的数量可能会巨大。使用areas可以划分逻辑性分组。每一组包含独立的route管理。

  • 相关阅读:
    squid反向代理
    LVM逻辑卷管理
    磁盘分区
    磁盘阵列
    apache基本配置
    LNMP简要配置
    高性能Web服务器Nginx
    samba文件共享服务配置(multiuser机制)二 (共两节)
    samba文件共享服务配置一(共2节)
    linux 批量修改文件名 文件名只保留部分,去掉部分
  • 原文地址:https://www.cnblogs.com/stone_lv/p/5213882.html
Copyright © 2011-2022 走看看