• 第一篇博客MVC路由简述


         一直念叨着写博客,可是迟迟不见下笔,工作到现在,技术长进了一点,但是记的东西都很杂,也没个思路,也不知道怎么去写一遍博客,现在在做MVC,写一点跟MVC有关的吧。

      我们都知道MVC程序的所有请求都是先经过路由解析然后分配到指定Controller 以及 Action 中的,MVC中的路由规则都是写在Routing文件中的,Routing的作用一般就是确定Controller、Action以及Action的参数,写法如下:

                routes.MapRoute(
                    name: "Default_HasId_Html",// 路由名称
                    url: "{controller}/{action}/{id}.html",// 带有参数的URL
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }// 参数默认值
                    );

    注意:路由名称是唯一的,{}表示占位符,类似string类的Format方法,路由规则也可以使用正则,

    MVC自定义路由的参数名要和控制器里面方法的参数名一样


    defaults表示如果当前没有指定控制器的话,则默认为Home控制器,如果没有指定方法的话,则默认为Index,默认没有指定参数的话,则默认为UrlParameter.Optional(包含可选参数的只读性)

    示例:

    routes.MapRoute(
      name: "List",
      url: "{param}/{page}" + ext,
      defaults: new { controller = "Index", action = "List", id = UrlParameter.Optional },
      constraints: new RouteValueDictionary// 路由约束
      {
        {"param", @"ss[0-9]+c[0-9]+y[0-9]+"},
        {"page", "[0-9]+"}
      });

    routes.MapRoute(
      name: "ScoreSearchList",
      url: "ss{subid}c{areaid}y{year}/{page}" + ext,
      defaults: new {controller = "Index", action = "List"},
      constraints: new RouteValueDictionary {{"subid", "[0-9]+"}, {"areaid", "[0-9]+"},{"year", "[0-9]+"}, {"page", "[0-9]+"}}
    );

    这两个路由表达的意思是一样的,只不过写法不一样而已.

    感谢您怀着耐心看完整篇博文!!!

    如果文章有什么错误或不当之处,请您斧正!

    您有任何意见或者建议,您可以给我发邮件,也可以在下面留言,我看到了会第一时间回复您的,谢谢!

    作者:晓菜鸟
    出处:http://www.cnblogs.com/52XF/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    缓冲流
    properties类
    io流
    异常处理
    file的概述和作用
    map集合和set集合
    js 判断是否是undefined null NaN
    java instanceof 判断是否是String
    ajax获取数据中文乱码问题最简单的完美解决方案
    if else if else if else 的用法
  • 原文地址:https://www.cnblogs.com/djgs/p/3562548.html
Copyright © 2020-2023  润新知