2012-02-19 12 views
33

Estoy jugando con la nueva aplicación wep en mvc 4 beta y agregando algunos nuevos controladores api a mi sitio existente de mvc. El problema es que no puedo nombrar los controladores de API web lo mismo que mis controladores existentes. Por ahora les he dado nombres como ProductApiController, pero eso no es muy parecido al resto. ¿Cuál es una buena estrategia para dar nombre a estos nuevos controladores al agregarlos a un sitio de mvc existente?Mix web api controllers and site controllers

Respuesta

53

Problema es que no puedo nombrar los controladores de API web de la misma manera que mis controladores existentes.

Puede tener sus controladores API con el mismo nombre que sus controladores existentes. Solo colóquelos en un espacio de nombres diferente para hacer feliz al compilador.

Ejemplo:

namespace MyAppName.Controllers 
{ 
    public class ProductsController: Controller 
    { 
     public ActionResult Index() 
     { 
      var products = productsRepository.GetProducts(); 
      return View(products); 
     } 
    } 
} 

y el controlador de API:

namespace MyAppName.Controllers.Api 
{ 
    public class ProductsController: ApiController 
    { 
     public IEnumerable<Product> Get() 
     { 
      return productsRepository.GetProducts(); 
     } 
    } 
} 

y luego tiene: /products y /api/products respectivamente a trabajar.

+0

Entonces, ¿puedo agregar una subcarpeta api en la carpeta de controladores y agregar allí los controladores api? – terjetyl

+0

@TT. Sí, es una posibilidad. –

+2

O tal vez un área para la API web es más apropiado? – terjetyl