Ho appena iniziato a utilizzare VS 2012 RC e sto creando un'applicazione Web ASP.NET MVC 4 in cui prevedo di fornire sia un'interfaccia utente basata su HTML sia un'interfaccia di programmazione basata su WebApi.Posso avere sia un controller che un ApiController per la stessa cosa?
Per il mio sito Web HTML, ho un controller e una vista per ciascuno dei miei modelli (MVC!) E il routing funziona "per convenzione" in modo che, ad esempio, l'URL /client
si colleghi al mio ClientController
. Il mio ClientController
deriva da Controller
.
Per la mia API, creerò nuovi controller che derivano da ApiController
. Naturalmente desidero che i miei URL API siano simili ai miei URL HTML, quindi mi piacerebbe che le informazioni sul client fossero disponibili al numero /api/client
. Tuttavia, con il routing per convenzione, ciò suggerisce che ho bisogno di un ApiController denominato ClientController
. E ho già una classe ClientController
.
Come mi occupo di questo? Ho bisogno di routing personalizzato? Metto le classi API in diversi namespace in modo che possa dare loro lo stesso nome?
Update: questa domanda sembra suggerire che uno spazio dei nomi diverso per i miei regolatori di API è tutto quello che ho bisogno: Mix web api controllers and site controllers
Hai guardato [aree MVC] (http://msdn.microsoft.com/en-us/library/ee671793.aspx)? – gordonmleigh
@gordonml: Grazie - l'ho appena fatto, e sembra essere sotra, un po 'utile. Tuttavia non posso fare a meno di pensare che sia un po 'esagerato per quello che devo raggiungere. –
IsAjaxRequest funziona per le tue esigenze? http://stackoverflow.com/questions/1681563/detecting-isajaxrequest-with-asp-net-mvc-and-jquery-form-plugin-file-upload – kenny