Есть ли способ добавить подпапки в папке Controller проекта Webapi?
Я думаю о чем-то вроде Controller/Customer, который включает контроллеры для модуля Customer.
Есть ли способ добавить подпапки в папке Controller проекта Webapi?
Я думаю о чем-то вроде Controller/Customer, который включает контроллеры для модуля Customer.
Я использовал области для решения этой проблемы. Как указано здесь http://blogs.infosupport.com/asp-net-mvc-4-rc-getting-webapi-and-areas-to-play-nicely/
Контроллеры не работают таким образом. В Asp.NET ваша структура папок - это структура вашего сайта. В WEB API контроллеры просматриваются независимо от структуры. На самом деле вы можете иметь их в разных сборках, и они все равно будут найдены в рамках. Маршрутизация не будет работать так, как вы ожидаете.
Вы можете добавить маршрут, на котором у вас есть ваше "имя папки", как вы сказали, localhost/WebApp/{foldername}/{controller}
. Только {foldername}
может быть простым, статическим именем папки (localhost/WebApp/foldername/{controller}
). Таким образом, клиенту придется вызывать url с именем "foldername", но расположение кода не имеет значения, поскольку среда MVC не различает деревья папок под контроллерами.
Что я делаю для решения этой проблемы для себя, я добавляю еще один Maproute и добавляю пространство имен перед контроллером. Просто помните о двух моментах:
Вы не можете добавить пространство имен для стандартного
routes.MapRoute(
name: "Secretariat",
url: "{namespace}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Ответы здесь неправильные. Вы можете легко это сделать. Вам просто нужно указать маршрут в классе контроллера:
Расположен в папке /Controllers/Authentication
//An example of you specifying a diff. route than the folder path
[Route("api/login")]
public class LoginController {...}