2017-03-21 11 views
0

사용자 지정 하이재킹 된 메서드로 렌더 모델을 검색하려고했지만 항상 null이 반환됩니다. 두 개의 선택적 매개 변수가 정확합니다.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); 
    } 
} 

는 이것이 rendermodel에서 상속 ExternalLinkOperationsController의 방법입니다 :

[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에 의해!