Вспомогательные теги привязки связываются с контроллером API - PullRequest
0 голосов
/ 08 мая 2018

В 2017 году я работаю над проектом Visual Studio CE, использующим .Net Core 2.0. Я создал каталог API для моих контроллеров Web API и каталог Controllers для моих стандартных контроллеров MVC.

У меня есть StoresController в каждом каталоге. В каталоге API атрибут Route указан как [Route("api/[controller]")]. Тот, что находится в каталоге Controllers , не имеет атрибута Route; он использует маршруты по умолчанию, установленные в Startup.cs .

Я создал следующую ссылку Удалить в своем представлении «Редактировать» с помощью встроенных помощников тегов: <a asp-action="Delete" asp-controller="Stores" asp-route-id="@Model.Id" class="btn btn-danger">Delete</a>

По какой-то причине это ссылка на / api / stores / {id} вместо / stores / delete / {id} . Есть ли способ настроить помощники тегов для использования маршрутов MVC по умолчанию вместо маршрутов API? Или мне нужно переименовать имена классов / действий?


Обновление: Атрибут Route имеет параметр Order, который должен влиять на приоритет маршрута при разрешении запросов. Изменение этого значения не повлияло на вывод вспомогательного тега.

1 Ответ

0 голосов
/ 08 мая 2018

Вы можете добавить несколько маршрутов к вашему элементу управления с помощью заказа, а помощник по привязке тега использовать первый.

[Route("[controller]/[action]", Order = 0)] // Same as default routes
[Route("api/[controller]/[action]", Order = 1)] // Your custom route

По умолчанию все определенные маршруты имеют значение Порядка 0, а маршруты обрабатывается от низшего к высшему.

...