【问题标题】:getting error when trying to use custom route in anchor tag helper尝试在锚标记助手中使用自定义路由时出错
【发布时间】:2019-03-27 21:54:22
【问题描述】:

我使用模板“/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() 就可以了,但我不知道我是否可以在标签助手中访问它。

有什么建议吗?

【问题讨论】:

    标签: c# asp.net-core


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      颜色

      您缺少 asp-rout-color="docu" 的最后一部分

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2021-09-04
          • 2016-06-04
          • 2021-10-26
          • 1970-01-01
          • 2016-05-22
          • 1970-01-01
          • 2017-02-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多