사용자 지정 하이재킹 된 메서드로 렌더 모델을 검색하려고했지만 항상 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가 생성 될 때만 코드를 디버깅합니다. 내가 경로 속성이 잘못 실현되지 않았다