繁体   English   中英

尝试在锚标记助手中使用自定义路由时出错

[英]getting error when trying to use custom route in anchor tag helper

我已经使用模板“ /documentation/{category?}/{feature?} ”创建了一个路由,并将其命名为docu ,但是当我尝试在锚标记帮助器中使用它时出现错误。

关联:

<a asp-route="docu" asp-route-category="layout" asp-route-feature="colors" asp-page-handler="Feature" class="link">Color</a>

错误:

InvalidOperationException: 无法确定 的“href”属性。 以下属性是互斥的:asp-route asp-controller、asp-action asp-page、asp-page-handler

如果我在 cshtml 文件中使用@Url.RouteUrl() ,它会起作用,但我不知道我是否可以在标签助手中访问它。

有什么建议吗?

就像异常告诉您的那样,这里的主要问题是您同时使用asp-page-handlerasp-route 第一个用于生成 Razor 页面的 URL,而后者用于生成命名路由的 URL。 两者是相互排斥的,因此您只需选择一个并删除另一个。

颜色

你错过了 asp-rout-color="docu" 的最后一部分

我最终在自定义标签助手中使用了 IUrlHelper,而不是使用锚助手。

services.AddScoped<IUrlHelper>(x =>
{
    var actionContext = x.GetRequiredService<IActionContextAccessor>().ActionContext;
    var factory = x.GetRequiredService<IUrlHelperFactory>();

    return factory.GetUrlHelper(actionContext);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM