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.