MVC设定默认路由为指定的Area下的某个action
作者:chenqiangdage 发布时间:2023-03-03 00:00:56
标签:mvc,area,action
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


猜你喜欢
- 暂停和恢复Activity(Pausing and Resuming an Activity)一个Activity是一个应用程序组件,提供一
- 1、SSL介绍和说明SSL的配置也是我们在实际应用中经常遇到的场景SSL(Secure Sockets Layer,安全套接层)是为网络通信
- 前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发。然而,网上很多的
- 《Spring Boot Actuator详解与深入应用》预计包括三篇,第一篇重点讲Spring Boot Actuator 1.x的应用与
- spring mvc @PathVariable / 带斜杠方式获取遇上这个问题,百度google了一下,抄袭里面的内容,可以实现,在此备忘
- C#调用c++dll文件是一件很麻烦的事情,首先面临的是数据类型转换的问题,相信经常做c#开发的都和我一样把学校的那点c++底子都忘光了吧(
- 代码如下:@Test public void shengdanshu(){ //叶子层
- 问题现象:HTTP Status 403-Invalid CSRF Token 'null' was found on th
- 1. 讲故事最近因为各方面原因换了一份工作,去了一家主营物联柜的公司,有意思的是物联柜上的终端是用 wpf 写的,代码也算是年久失修,感觉技
- JetBrainsMono 是 JetBrains 公司开发的一款开源字体,可免费商用。正如其名字带的Mono,即Monospaced Fo
- 流程图: 我们重点关心的是(1)这个过程的输入是什么?(2)这个过程的输出是什么?(3)这个过程使用了什么工具?至于使用什么参数,
- 一:父级pom.xml文件 resources目录下新建指定文件夹,存放Spring配置文件<profiles> &
- Java 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,如图所示:程序计数器程序计数
- 本文实例讲述了java生成随机数的方法。分享给大家供大家参考。具体实现方法如下:package com.tool.code; import
- 实现Java多态性的时候,关于方法调用的优先级:我们这样假设下,super(超类)、this(当前类对象)、show(方法)、object(
- C#的timer与线程使用卡顿怎么处理,多线程。多线程比timer好读。看看timer和线程的关系。timer有3种1.winform 下的
- C#的MVC寻找对应的控制器首先是寻找当前域的如果找不到就会寻找备用的..但是有些时候我们是不想他去寻找备用的控制器.这里就涉及到了一个Da
- public class MenuEx extends Activity { private static final String TAG
- Java异常层次结构Exception异常RuntimeException与非RuntimeException异常的区别:非RuntimeE
- 众所周知,android里面我们很熟悉的一个功能,侧滑菜单效果在以前我们大部分都是用的slidingmenu这个开源框架,自从谷歌官方新出的