ошибка при попытке использовать пользовательский маршрут в помощнике тега привязки - PullRequest
0 голосов
/ 23 октября 2018

Я создал маршрут с шаблоном " / documents / {category?} / {Feature?} " и назвал его document , но при попытке получить сообщение об ошибкеиспользовать его в помощнике тега привязки.

Ссылка:

<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

Работает, если я использую @Url.RouteUrl () в файле cshtml, но я не знаю, получаю ли я к нему доступ в помощнике по тегам.

Любой совет?

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Как говорит исключение, основная проблема здесь в том, что вы одновременно используете asp-page-handler и asp-route.Первый предназначен для генерации URL-адреса на страницу Razor, а второй - для генерации URL-адреса для именованного маршрута.Оба являются взаимоисключающими, поэтому вам просто нужно выбрать один и удалить другой.

0 голосов
/ 23 октября 2018

В конечном итоге я использовал usin IUrlHelper в помощнике пользовательских тегов вместо использования помощника привязки.

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

    return factory.GetUrlHelper(actionContext);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...