Я хочу создать маршруты для рендеринга представлений (веб-маршруты) и маршрутов для целей администрирования (API-маршруты).Поэтому я создал структуру каталогов следующим образом:
controllers //root controller folder
ProductController
Api //subfolder of controllers folder
Productcontroller
У меня есть классы с одинаковыми именами, и они портят мои маршруты.«API-маршруты» перекрывают «веб-маршруты».
Вот как я определил свои API-маршруты
namespace Loja.Controllers.Api
[Produces("application/json")]
[Route("api/Produtos")]
public class ProdutosController : Controller
{
// GET: api/<controller>
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
Вот как я определил свои веб-маршруты:
namespace Loja.Controllers
{
public class ProdutosController : Controller
{
[Route("/produtos/{slug}")]
public IActionResult Get(string slug)
Когда я пытаюсь сгенерировать ссылку на свой веб-маршрут, меня направляют на маршрут API.Почему?
<a asp-controller="Produtos" asp-action="Get" asp-route-slug="@produto.Slug">
Когда я нажимаю на ссылку, меня направляют на
http://localhost:5000/api/produtos?slug=assadeira-grande-40-x-27-cm-109dcc