博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#route area的坑
阅读量:5280 次
发布时间:2019-06-14

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

多area时,

它会先匹配路由有没有定义路由(这点没问题)

接着

它先找路由,如果多个路由,如果有多个,再根据namespaces去筛选,(这有问题,它不是先按namespaces去筛选,再得到路由的,就可能存在,可能找到多个匹配路径,,,以及路由穿透现象,,,)

 

routes.MapRoute(
name: "api",
url: "api/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Storages.Areas.Api.Controllers" }
);
routes.MapRoute(
name: "config",
url: "config/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Storages.Areas.Config.Controllers" }
);

控制器,

config下,有HomeController,,api下没有,

则访问 api/home/index, 可能跳到config/home/index 了,

 

 

 

需要改为,

areas.api 下,

1。

.Areas.Api 名空间下

2。

public class ApiAreaRegistration: AreaRegistration
{
public override string AreaName { get { return "Api"; } }

public override void RegisterArea(AreaRegistrationContext context)

{
context.MapRoute(
"route_Api",
"Api/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
}
}

 

转载于:https://www.cnblogs.com/ijunxiong/articles/11037713.html

你可能感兴趣的文章
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>