我试图将渲染模型模型检索到我的自定义劫持方法中,但我总是得到空。两个可选参数是正确的。
这是我的自定义路线:
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
香农·德米尼克在这里回答!