zoukankan      html  css  js  c++  java
  • 【.NET框架】—— ASP.NET MVC5路由基础(五)

    1.1.ASP.NET MVC5路由概念及设置

    路由是实现资源交互访问的接口,路由匹配传入请求,并把这些请求映射到控制器操作,构造传出的URL,用来响应控制器操作。

    路由的分类:

    • 传统路由
    • 特性路由

    传统路由:

    传统路由的设置方式,本来就有,在app_Start/RouteConfig.cs中集中设置;

    namespace WebApplication1
    {
        public class RouteConfig
        {
            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 }
                );
            }
        }
    }

    特性路由:

    在控制器类或操作方法中使用声明式的特性的选项,称为特性路由。

    需要在app_Start/RouteConfig.cs中做设置,修改RegisterRoutes方法:

    ①设置routes.MapMvcAttributeRoutes();

     

    ②对应路由控制器上添加[Route("Home/About")],对应路由Controller名称,路由方法名称;

    1.2.ASP.NET MVC5特性路由—传值

    特性路由传参需要在Controller控制器的方法上注解上加上{参数名}

    注意:在访问的时候需要在url上面多加一个name实际传入的参数,如Home/About/jackson,才能访问到对应的路由。

    多个参数传递:/{name}/{name2}…

    1.3.ASP.NET MVC5特性路由—控制器路由

    可以直接在控制器上加上”Home/{action}”即可访问到对应的每个控制器方法;

    1.4.ASP.NET MVC5特性路由—路由约束

    该约束限制id只能是int类型的变量,如果传入其它类型的string则访问不到对应的路由,会直接报错。

    1.5.ASP.NET MVC5特性路由—路由默认值

    这样配置就告诉MVC框架当前控制器就是初始化控制器,Index()方法就是初始化路由的视图。

    这里需要设置一些界面默认的参数模式,详情请参见博客:

    https://www.cnblogs.com/fumj/p/4887689.html

    https://www.cnblogs.com/wningning/archive/2013/03/26/2982079.html

    否则会出现 IIS 403报错的问题:

  • 相关阅读:
    修改代码一般在测试服务器
    人很臭尽量往香里去做...
    救赎
    写的css十个错误
    如何debug看源代码
    办公室倒水
    程序和思维
    mousewheel.js 和scroll api
    drupal.behavior 和 document.ready 没有直接的关系
    revision in drupal
  • 原文地址:https://www.cnblogs.com/yif0118/p/13455605.html
Copyright © 2011-2022 走看看