Добавление подпапок в папку контроллера -.net webapi

Есть ли способ добавить подпапки в папке Controller проекта Webapi?

Я думаю о чем-то вроде Controller/Customer, который включает контроллеры для модуля Customer.

Ответ 2

Контроллеры не работают таким образом. В Asp.NET ваша структура папок - это структура вашего сайта. В WEB API контроллеры просматриваются независимо от структуры. На самом деле вы можете иметь их в разных сборках, и они все равно будут найдены в рамках. Маршрутизация не будет работать так, как вы ожидаете. Вы можете добавить маршрут, на котором у вас есть ваше "имя папки", как вы сказали, localhost/WebApp/{foldername}/{controller}. Только {foldername} может быть простым, статическим именем папки (localhost/WebApp/foldername/{controller}). Таким образом, клиенту придется вызывать url с именем "foldername", но расположение кода не имеет значения, поскольку среда MVC не различает деревья папок под контроллерами.

Ответ 3

Что я делаю для решения этой проблемы для себя, я добавляю еще один Maproute и добавляю пространство имен перед контроллером. Просто помните о двух моментах:

  • Ваш новый маршрут должен быть перед стандартным
  • Вы не можете добавить пространство имен для стандартного

        routes.MapRoute(
           name: "Secretariat",
           url: "{namespace}/{controller}/{action}/{id}",
           defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
    

Ответ 4

Ответы здесь неправильные. Вы можете легко это сделать. Вам просто нужно указать маршрут в классе контроллера:

Расположен в папке /Controllers/Authentication

//An example of you specifying a diff. route than the folder path
[Route("api/login")]
public class LoginController {...}