是否可以将一个路由映射到MVC中的一组特定控制器操作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以将一个路由映射到MVC中的一组特定控制器操作?相关的知识,希望对你有一定的参考价值。
假设我有两组类似的控制器动作:
Photos/OriginalList/{filterBy}
Photos/PhotoShopList/{filterBy}
Photos/OriginalSingle/{id}/{filterBy}
Photos/PhotoShopSingle/{id}/{filterBy}
在这两个组中,filterBy是可选的。
有没有办法创建可以将类似操作组合在一起的路由,还是我需要为每个操作创建显式路由?
我试过这样的东西,但它不起作用:
routes.MapRoute(name: "FilteredPhotoList", url: "Photos/{action=*List}/{filterBy}", defaults: new {
controller = "Photos",
action = "OriginalList",
filterBy = UrlParameter.Optional
}, namespaces: new string[] { "BetterExample" });
routes.MapRoute(name: "FilteredPhotoSingle", url: "Photos/{action=*Single}/{id}/{filterBy}", defaults: new {
controller = "Photos",
action = "OriginalSingle",
filterBy = UrlParameter.Optional
}, namespaces: new string[] { "BetterExample" });
答案
我将明确定义每个路由以获得更好的可读性和代码清洁度。
以上是关于是否可以将一个路由映射到MVC中的一组特定控制器操作?的主要内容,如果未能解决你的问题,请参考以下文章