Acabo de comenzar a utilizar VS 2012 RC, y estoy creando una aplicación web ASP.NET MVC 4 en la que tengo previsto proporcionar una interfaz de usuario basada en HTML y una interfaz de programación basada en WebApi.¿Puedo tener un controlador y un ApiController para la misma cosa?
Por mi página web HTML, tengo un controlador y vista para cada uno de mis modelos (MVC!), Y el funcionamiento del enrutamiento "por convención" de manera que, por ejemplo, las URL /client
ganchos a mi ClientController
. Mi ClientController
deriva de Controller
.
Para mi API, crearé nuevos controladores que se derivan de ApiController
. Naturalmente, quiero que mis URL de API sean similares a mis URL HTML, por lo que me gustaría que la información del cliente esté disponible en el /api/client
. Sin embargo, con el enrutamiento por convención, eso sugeriría que necesito un ApiController llamado ClientController
. Y ya tengo una clase ClientController
.
¿Cómo manejo esto? ¿Necesito un enrutamiento personalizado? ¿Puse las clases de API en diferentes espacios de nombres para poder darles el mismo nombre?
Actualización: esta pregunta parece sugerir que un espacio de nombres diferente para mis controladores de API es todo lo que necesita: Mix web api controllers and site controllers
¿Ha mirado en [áreas de MVC] (http://msdn.microsoft.com/en-us/library/ee671793.aspx)? – gordonmleigh
@gordonml: Gracias - Acabo de hacerlo, y parece ser sotra, algo útil. Sin embargo, no puedo evitar sentir que es un poco exagerado para lo que necesito lograr. –
¿IsAjaxRequest funciona para sus necesidades? http://stackoverflow.com/questions/1681563/detecting-isajaxrequest-with-asp-net-mvc-and-jquery-form-plugin-file-upload – kenny