【发布时间】:2017-11-12 18:53:11
【问题描述】:
我在两个单独的控制器中有两个方法,我想访问它们,但似乎无法弄清楚自定义路由应该是什么样子,以及是否可以在不手动编写所有路由的情况下做到这一点。
我想要达到的目标:
baseUrl/businessOwner/identity
映射到 BusinessOwnerController,身份操作
baseUrl/{employee}/identity
映射到 EmployeeController、Identity 操作
其中 {employee} 将是一个字符串,我与数据库中的值匹配。 另外,我希望其他 URL 能够将自己映射到它们的默认行为,例如:
baseUrl/accountant/identity
不会匹配之前的路由,但会转到默认行为:accountant - AccountantController,Identity action。
唯一可行的方法(据我所知)是在 RegisterRoutes 中手动映射路线。
我尝试过自定义路线:
routes.MapRoute(
"BusinessOwner",
"businessOwner/{action}/{id}",
new { controller = "BusinessOwner", action = "Identity", id = UrlParameter.Optional }
);
在默认路由之前,但这并没有真正奏效,因为仍然会弹出“多个控制器匹配”错误。
我也尝试将控制器分离到同一个 Controllers 文件夹中的不同命名空间中,并基于此进行路由,但仍然不成功。
有什么想法吗?
【问题讨论】: