博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC 默认路由 Areas
阅读量:6232 次
发布时间:2019-06-21

本文共 1462 字,大约阅读时间需要 4 分钟。

1、使用重名controller

   在asp.net mvc2以后的版本里面,有了area(区域的概念),这为我们开发中提供了不少方便的地方,但是很不凑巧,若是存在多个重名的controller就会发生错误,因此我们可以根据router的规则来解决这个问题。

错误提示:

我们可以根据错误提示来解决这个问题,在MapRoute方法添加namespaces参数,代码如下:

1 public static void RegisterRoutes(RouteCollection routes) 2         { 3             routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 4  5             routes.MapRoute( 6                 name: "Default", 7                 url: "{controller}/{action}/{id}", 8                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 9                 namespaces:new []{
"MvcApplication8.Controllers"}10 );11 }

 

加上命名空间后,就会按照命名空间去找相应的控制器,这个问题就解决了。

2、设置area里面的页面为起始页

解决这个问题,我们可以使用Route对象的DataTokens属性来指定命名空间列表。DataTokens.Add()方法,我们可以理解为存储于Route对象的DataTokens属性中,对应的Key为“Namespaces”。这两个问题的解决方法有相似之处。

代码:

1 public static void RegisterRoutes(RouteCollection routes) 2         { 3             routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 4  5             routes.MapRoute( 6                 name: "Default", 7                 url: "{controller}/{action}/{id}", 8                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 9                 namespaces: new[] { "MvcApplication8.Controllers" }10             ).DataTokens.Add("area","admin");11         }

 

其中defaults里面的controller和action为area里面设置起始页面的controller和action方法。

 

很多人为这个默认起始页发愁,都找不到!

转载于:https://www.cnblogs.com/cwy173/p/3475960.html

你可能感兴趣的文章
MySQL的语句执行顺序
查看>>
JavaScript基础语法 变量 常量 数据类型
查看>>
Java™ 教程(仔细看看“Hello World!”应用程序)
查看>>
flutter中的异步
查看>>
tensorflow学习之Anaconda开发环境搭建
查看>>
[JS]《你不知道的Javascript·上》——this关键字
查看>>
如何理解 (object.getName = object.getName)() 这段代码?
查看>>
Spring AOP 源码分析系列文章导读
查看>>
Linux - 系统 - 文件目录
查看>>
[LeetCode] 267. Palindrome Permutation II
查看>>
前端妹纸的进阶之路——redux源码分析
查看>>
Centos7下使用gitolite搭建git服务器
查看>>
如何更好的编写async函数
查看>>
【前端工程师手册】JavaScript之this的笔记
查看>>
使用nginx来为你在一台服务器部署多个Web Server
查看>>
G5 Capital 与 SegmentFault 达成战略合作
查看>>
抽象类和接口的区别
查看>>
Vue 组件详解
查看>>
前端面试题-主流浏览器内核
查看>>
JavaScript 进阶知识 - Ajax篇
查看>>