簡體   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