如果在产品控制器中定义了 5 级产品层次结构,如何转到帐户控制器

How to go to account controller if 5 level of product hierarchy is defined in product controller

我已经使用属性路由来创建如下层次结构。
abc.com/Electronics/Audio/Portable Audio/iPods/Apple iPod Nano

最后一个是产品名称。这在产品控制器中定义。

现在我想在注册 link 点击时转到帐户控制器,但我不能去那里,因为任何级别的路由都符合 URL 标准并且它总是转到产品控制器方法。

所以我的问题是,如何在单击注册 link 时转到帐户控制器。寄存器 link 在 Layout.cshtml.

中定义

谢谢

请记住,您确实根据调用时间设置了顺序,即,当您注册与定义默认路由模式的时间相关的路由属性时。如果愿意,您可以使用可选的 Order 参数设置 RouteAttribute 的顺序。

[Route("controller/action", Order = 1)]

您可能还希望查看生成不干扰默认路由路由的 LocalRoute,特别是针对您复杂的产品路由要求:

解决了。只需将路由放在属性路由之前即可。例如

routes.MapRoute(
                name: "AccountRoute",
                url: "Account/Register",
                defaults: new { controller = "Account", action = "Register"}
            );
            routes.MapMvcAttributeRoutes();

你可以转到你想要的控制器。不敢相信就这么简单。我仍然认为有更有效的方法可以做到这一点。 感谢 mahlatse & MisterJames