如果在产品控制器中定义了 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
我已经使用属性路由来创建如下层次结构。
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