MVC路由
2022-11-14 本文已影响0人
山猪打不过家猪
1.定义多个路由
image.png例一:
- 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"} //分区路由限制,防止重名控制器,添加分区项目的命名空间
);
}
}
}