Siéntete libre de divulgar nuestros post y códigos en tus redes sociales, apóyanos para aumentar esta comunidad.
Si alguien tiene este mismo problema en C#, siga leyendo.
También estoy usando una aplicación de formularios web y configuro el enrutamiento a través del Global.asax
expediente. Para mí, Intellisense fue 100% correcto y no se compilaría de todos modos. Para que esto funcione, tuve que agregar las siguientes directivas de uso.
using System.Web.Http;
y
using System.Web.Routing;
Ten cuidado no usar using System.Web.Http.Routing
por accidente. Esto no funcionará.
Debe agregar la referencia a Sistema.Web.Http.WebHost ensamblaje y asegúrese de tener
using System.Web.Http;
Por qué ? MapaHttpRuta se define en dos conjuntos, en System.Web.Http
:
public static System.Web.Http.Routing.IHttpRoute MapHttpRoute(
this System.Web.Http.HttpRouteCollection routes, string name, string routeTemplate)
Miembro de System.Web.Http.HttpRouteCollectionExtensions
y en System.Web.Http.WebHost
public static Route MapHttpRoute(
this RouteCollection routes, string name, string routeTemplate, object defaults);
El primero es una extensión en HttpRouteCollection
El segundo es una extensión en RouteCollection
Entonces, cuando tiene una aplicación de formularios web, sus rutas se definen en un RouteCollection
por lo que necesita el WebHost
versión.
Es porque la arquitectura permite que WebApi se aloje también fuera de IIS. ver Hosting WebApi
Encontré este hilo, que indica que IntelliSense aparentemente tiene un problema con esto, pero si escribe algo como lo siguiente, se compilará y ejecutará:
RouteTable.Routes.MapHttpRoute("MyApi", "api/controller")