[ASP.NET MVC] Controladores con el mismo nombre con MVC y WebAPI en el mismo proyecto

Si estas empezando a usar WebAPI y ASP.NET MVC, una pregunta que se suele hacer la gente es como poder usar el mismo nombre de controlador tanto para nuestra api como para nuestros controladores de mvc.

La respuesta es sencilla y nos la da de base .NET: Namespaces

Yo en mis desarrollos me creo una nueva carpeta dentro de Controllers llamada Api:

image

Así puedo tener el 2 controladores con el mismo nombre pero en diferente espacio de nombres.

namespace Company.Project.Web.Controllers

{

    public class WeatherController : Controller

    {

 

    }

}

 

namespace Company.Project.Web.Controllers.Api

{

    public class WeatherController : ApiController

    {

 

    }

}

Un saludo.

Un comentario en “[ASP.NET MVC] Controladores con el mismo nombre con MVC y WebAPI en el mismo proyecto”

  1. Luis Me sumo con otro tip que hace lo mismo (otra alternativa a lo que comentas)
    Siempre con la consigna de estar en un namespace diferente
    Todas estas hacen lo mismo que comentas.

    TIP 1.1 😉
    Puedes crear una carpeta en el raiz Controllers.Api
    Asi cuanquier clase (controlador) incluso las de las web api cuando la creas dentro de esta tambien estara dentro del namespace …Api
    (idem a lo que comentas creando una carpeta dentro de Controllers)

    TIP 1.2:
    Algo mas rebuscando.
    Crear el nombre del archivo: Api.WeatherController.cs (dentro de la carpeta Controller) y que el namespace quede dentro de Api (esto es muy manual)
    Asi los que comienzan con este nombre estan dentro del namespace …Api

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *