尝试在 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)
{}

所以我没有得到模型参数只有两个可选参数,我可能做错了什么,我也试图这样做

new UmbracoVirtualNodeByIdRouteHandler(3290)

而不是

new ConfirmEmailRouteHandler(3290), 

但没有成功,我正在使用 umbraco v 7.5.3。调试代码时,仅当构造函数触发重写的方法 FindContent 时

。提前感谢您的任何帮助

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

香农·德米尼克在这里回答!

最新更新