Aspnetcore: Могу ли я использовать области в основных проектах веб-API Asp.net?

Созданный на 19 янв. 2019  ·  3Комментарии  ·  Источник: dotnet/aspnetcore

Я работаю над проектом, который является основным проектом веб-API Asp.net. Большинство моих проектов я сделал с помощью Asp.net MVC и Core MVC, но я бы сделал новый проект на основе Core Web API. в Core MVC у нас есть концепция областей, в которой мы можем создать области для административной части и т. д. Но я хочу знать, можем ли мы использовать области в основных проектах веб-API Asp.net? Если да, то как я могу это сделать? Если вы думаете о том, что есть лучший способ, скажите мне, пожалуйста.

area-mvc

Самый полезный комментарий

Вы можете разместить свои контроллеры API в области, просто чтобы сгруппировать их. Но в основном вы предоставляете маршрут на контроллере, поэтому вы можете сами создавать разные маршруты:
[Route("api/myarea/v1/[controller]")]

Все 3 Комментарий

Вы можете разместить свои контроллеры API в области, просто чтобы сгруппировать их. Но в основном вы предоставляете маршрут на контроллере, поэтому вы можете сами создавать разные маршруты:
[Route("api/myarea/v1/[controller]")]

У меня та же проблема, которую я пробовал, поместив свой ApiController в свою область, чтобы структура выглядела так, как показано ниже.

Вот контроллер Api внутри

Области/GL/Контроллеры

[Area("GL")] [Route("api/[controller]")] [ApiController] [HttpGet] public IActionResult Get() { return Ok("api controller"); }

Но когда я получаю доступ к своему URL
http:// локальный: 48357/GL/Api/получить
Или
http:// локальный: 48357/Api/GL/Получить
или
http:// локальный: 48357/Api/получить
я получил

Код состояния: 404; не обнаружена

Вот код в

Startup.cs

routes.MapAreaRoute( name: "AreaGL", areaName: "GL", template: "GL/{controller=Home}/{action=Index}/{id?}" );

Пожалуйста, помогите мне в этом вопросе, что я делаю неправильно здесь?

Спасибо, что связались с нами, @farhadibehnam.
Чтобы контроллеры находились в областях, вы должны применить ограничение маршрута {area:exists} в маршруте вашего атрибута, как описано https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas? представление = aspnetcore-2.2.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги