MVC路由

作者: 山猪打不过家猪 | 来源:发表于2022-11-14 11:46 被阅读0次

    1.定义多个路由

    image.png

    例一:

    • 1.名称:不能重复
      1. URL模式:规定url的形式
    • 3.默认值:和上面的url对应,控制器controller,控制器方法acrion
      例二:
      name:blog
      url规则:/2022/10/11
      方法:找blog控制器里的index方法
      constraints: 是规范,可以指定规范的字段,通过正则

    2. 多个路由的匹配规则

    image.png

    可以看出,这两个路由的规则完全相同,所以,默认是匹配Home,第一个,而不是下面的work;


    image.png
    image.png
    • 注意:这里默认是work控制器,但是url匹配规则里的controller,写的是study,当用户输入的url匹配到了路由规则,但是他输入的不是默认default里面的控制器,而是系统中已经有的控制器study,那么,mvc还是会认可这种规则

    3.默认路由

    image.png
    • 这里默认值,只有方法index,所以在请求的时候,需要自己协商controller


      image.png

    4.动态链接

    image.png
    ![image.png](https://img.haomeiwen.com/i14814834/ 2bb2b699674a4a1d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    image.png

    5.分区项目

    image.png
    • 项目文件夹
      image.png
      其中StaffAreaRegistration.cs用来注册分区项目的路由
    using System.Web.Mvc;
    
    namespace StudentManagerMVC.Areas.Staff
    {
        public class StaffAreaRegistration : AreaRegistration 
        {
            public override string AreaName 
            {
                get 
                {
                    return "Staff";
                }
            }
    
            public override void RegisterArea(AreaRegistrationContext context) 
            {
                context.MapRoute(
                    "Staff_default",
                    "Staff/{controller}/{action}/{id}",
                    new { action = "Index", id = UrlParameter.Optional },
                    new string[]{ "StudentManagerMVC.Areas.Staff.Controllers"} //分区路由限制,防止重名控制器,添加分区项目的命名空间
                );
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:MVC路由

          本文链接:https://www.haomeiwen.com/subject/ukrlxdtx.html