route parameter net mvc asp asp.net-mvc-5 asp.net-mvc-routing asp.net-web-api asp.net-web-api-routing

asp.net-mvc-5 - parameter - route controller mvc 5



¿Cómo usar la misma ruta con diferentes tipos de parámetros? (1)

A continuación, te gusta la declaración de método con enrutamiento de atributo habilitado: // declara el método con guid primero

// GET: users/1D8F6B90-9BD9-4CDD-BABB-372242AD9960 [Route("users/{reference:guid}")] public IHttpActionResult GetUserByReference(Guid reference)

y declarar otro método como abajo

// GET: users/sample%40email.com [Route("users/{emailAddress}")] public IHttpActionResult GetUser(string emailAddress)

Por favor, avíseme, ¿este trabajo es para usted?

Tengo un controlador Api con dos acciones diferentes que toman diferentes tipos de parámetros.

// GET: users/sample%40email.com [Route("users/{emailAddress}")] public IHttpActionResult GetUser(string emailAddress) // GET: users/1D8F6B90-9BD9-4CDD-BABB-372242AD9960 [Route("users/{reference}")] public IHttpActionResult GetUserByReference(Guid reference)

El problema es que las acciones múltiples se encuentran coincidentes cuando realizo una solicitud a cualquiera. En cuanto a otras respuestas, pensé que necesitaba configurar rutas en WebApiConfig así ...

config.Routes.MapHttpRoute( name: "apiEmail", routeTemplate: "api/{controller}/{action}/{email}" ); config.Routes.MapHttpRoute( name: "apiReference", routeTemplate: "api/{controller}/{action}/{reference}" );

¿Qué debo hacer para llamar a cada acción en función del tipo de parámetro que paso?

Soy muy nuevo en Web.Api, cualquier texto de explicación adicional sería apreciado.