Sto diventando pazzo qui ... sembra un compito molto semplice. Prima di tutto, conosco solo le basi del Web Api e MVC - quindi per favore non mi spiate.Instradamento sottocartella ASP.NET Web Api Controller
Nel progetto ho bisogno di creare logicamente sottocartelle controller (per scopi organizzativi). Avevo la sensazione che non fosse così semplice come pensavo. Ho il percorso di default in questo modo:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
che funziona come dovrebbe direttamente dalla cartella controllori nel mio progetto. Ho aggiunto una sottocartella nei controller/report della cartella controller. Ho cercato un bel po 'e non riesco a trovare una soluzione. Come posso aggiungere una rotta che indirizzerà alla sottocartella. ho provato:
config.Routes.MapHttpRoute(
name: "ReportingApi",
routeTemplate: "api/Reports/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
e:
config.Routes.MapHttpRoute(
name: "ReportingApi",
routeTemplate: "api/Reports/{id}",
defaults: new { controller = "userunit" id = RouteParameter.Optional }
Il routing in realtà non utilizza il filesystem, ma indirizza le azioni del controllore. –
Ma a un certo punto non è necessario fornire un percorso se un controller si trova in una sottocartella? Non trova solo lo fa? –
Per convenzione, il framework cerca i controller nella cartella 'Controller', ma oltre a ciò non sta guardando i percorsi. Perché è necessario creare una sottocartella per ogni controller? Se vuoi, puoi giocare con il routing per ottenere gli URL giusti, se è quello che cerchi. –