2017-03-21 35 views
0

我试图将rendermodel模型检索到我的自定义劫持方法中,但我总是得到空值。这两个可选参数是正确的。试图在umbraco 7.5.3中实现自定义路由,但是覆盖方法FindContent不会被触发

这是我的自定义路线:

RouteTable.Routes.MapRoute(
     "umbracoRoute", 
     "token-verification/{action}/{userId}/{code}", 
     new 
     { 
      controller = "ExternalLinkOperations", 
      action = "", 
      userId = UrlParameter.Optional, 
      code = UrlParameter.Optional 
     }, 
     new ConfirmEmailRouteHandler(3290) 
     ); 

这是ConfirmEmailRouteHandler类:

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); 
    } 
} 

,这是在ExternalLinkOperationsController从rendermodel继承的方法:

[AllowAnonymous] 
public async Task<ActionResult> ConfirmEmail(RenderModel model, string userId, string code) 
{} 

所以我没有得到模型参数只有两个选项-l参数,我可能是做错了,我也试图让这个

new UmbracoVirtualNodeByIdRouteHandler(3290) 

代替

new ConfirmEmailRouteHandler(3290), 

但没有成功,我用一把umbraco v 7.5.3。在任何时候调试代码,只有在构造函数被调用时,被覆盖的方法FindContent才会被触发。

预先感谢任何帮助

回答

0

,我没有意识到的路径属性是不正确的,我有RouteTable.Routes.MapRoute,我应该使用RouteTable.Routes.MapUmbracoRoute

答案通过Shannon Deminick here