Trying to implement a custom route in umbraco 7.5.3 but the overrided method FindContent does not get fired
我试图将渲染模型模型检索到我的自定义劫持方法中,但我总是得到空值。两个可选参数是正确的。
这是我的自定义路线:
1 2 3 4 5 6 7 8 9 10 11 12 | RouteTable.Routes.MapRoute( "umbracoRoute", "token-verification/{action}/{userId}/{code}", new { controller ="ExternalLinkOperations", action ="", userId = UrlParameter.Optional, code = UrlParameter.Optional }, new ConfirmEmailRouteHandler(3290) ); |
这是 ConfirmEmailRouteHandler 类:
1 2 3 4 5 6 7 8 9 10 11 | public class ConfirmEmailRouteHandler: UmbracoVirtualNodeByIdRouteHandler { public ConfirmEmailRouteHandler(int realNodeId) : base(realNodeId) { } protected override IPublishedContent FindContent(RequestContext requestContext, UmbracoContext umbracoContext, IPublishedContent baseContent) { return base.FindContent(requestContext, umbracoContext, baseContent); } } |
这是从 rendermodel 继承的 ExternalLinkOperationsController 中的方法:
1 2 3 | [AllowAnonymous] public async Task<ActionResult> ConfirmEmail(RenderModel model, string userId, string code) {} |
所以我没有得到模型参数只有两个可选参数,我可能做错了什么,我也试着做这个
1 | new UmbracoVirtualNodeByIdRouteHandler(3290) |
而不是
1 | new ConfirmEmailRouteHandler(3290), |
但没有成功,我使用的是 umbraco v 7.5.3。在任何时候调试代码重写的方法 FindContent 被触发,只有当构造函数.
在此先感谢您的帮助
我没有意识到路由属性不正确,我有 RouteTable.Routes.MapRoute,我应该使用 RouteTable.Routes.MapUmbracoRoute
Shannon Deminick 的回答在这里!