MVC设定默认路由为指定的Area下的某个action
作者:chenqiangdage 时间:2023-03-03 00:00:56
MVC中,一般的情况下,使用IDE工具帮我们生成的代码,在路由注册的时候:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "WebShow", action = "List", id = UrlParameter.Optional }
);
}
默认给的路由地图 我们在default:中去配置 默认是又那个控制器返回action。
这样形如:http://localhost:1450/ 这样,会默认使用默认的view文件夹中去找对应的响应model页面;
但是当项目规模庞大,使用了MVC提供的Area模块快的规划,又要让Area块下某一个页面作为默认页面时,那就需要把route默认的路由去转到我们指定Area下;要用到RouteCollection 的DataTokens方法。
举个例子:Area下有注册一个Admin块
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Login", action = "Index", id = UrlParameter.Optional } //默认路径是Login控制器,和Index action
);
}
}
如果要让默认到admin下指定的。那么RegisterRoutes方法需要给routes路由到area 下的Admin块;
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Login", action = "Index", id = UrlParameter.Optional }, //这里要和Admin块下的默认控制器和action一样
new[] { "GTA.CMS.Site.Web.Areas.Admin.LoginController" }// 这个是你控制器所在命名空间
).DataTokens.Add("area","Admin");
}
来源:https://blog.csdn.net/chenqiangdage/article/details/48136601
标签:mvc,area,action
0
投稿
猜你喜欢
C#中数组初始化、反转和排序用法实例
2023-05-03 23:03:10
C#修改MAC地址类的实例
2023-09-11 06:51:14
Flutter 仿微信支付界面
2023-08-30 01:31:53
spring boot容器启动流程
2023-02-17 09:25:36
Springboot文件上传功能的实现
2021-09-20 12:48:47
C#实现的json序列化和反序列化代码实例
2022-04-05 22:24:08
Flutter 实现网易云音乐字幕的代码
2023-04-01 11:50:45
Android继承现有控件拓展实现自定义控件textView
2021-05-29 06:29:15
关于Java利用反射实现动态运行一行或多行代码
2021-11-27 23:12:55
算法证明每一位都相同十进制数不是完全平方数
2022-06-21 23:00:46
Unity键盘WASD实现物体移动
2021-06-14 13:46:21
PC蓝牙通信C#代码实现
2023-07-06 19:59:32
关于fastjson的@JSONField注解的一些问题(详解)
2021-11-23 09:09:34
Java静态代理与动态代理案例详解
2021-12-09 19:55:44
Java中接收键盘输入的三种方法
2023-11-13 16:11:29
vue+springboot前后端分离工程跨域问题解决方案解析
2023-08-06 06:51:10
C#委托与匿名委托详解
2023-02-24 21:12:41
Java获取Process子进程进程ID方法详解
2022-09-01 13:21:08
Android动态添加碎片代码实例
2023-10-19 23:35:13
Android连接服务器端的Socket的实例代码
2023-03-11 06:06:47