Let decir que tengo dos métodos en MVC controlador de API 4 Web:parámetros de URL en MVC 4 Web API
public IQueryable<A> Get() {}
Y
public A Get(int id) {}
y la siguiente ruta:
routes.MapHttpRoute(
name: "Default",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Esto funciona como se esperaba Adición de una un parámetro más, por ejemplo:
public IQueryable<A> Get(int p) {}
public A Get(int id, int p) {}
conduce a la situación cuando MVC devuelve 404 para la petición siguiente:
GET /controller?p=100
O
GET /controller/1?p=100
con el mensaje "No se encontró acción en el controlador 'controlador' que coincide con la solicitud "
Espero que la URL parame ters deben ser conectados por MVC sin problemas, pero no es cierto. ¿Es esto un error o una mala interpretación de cómo los mapas MVC solicitan acción?
[aquí] (http: // foros. asp.net/t/1774984.aspx/2/10) se describe el mismo problema, pero sin ninguna conclusión se espera este comportamiento –
PS. debido al mismo problema, la sintaxis de OData en URL no funcionará si hay más de un método asignado al verbo HTTP. –
¿Puedes mostrar tu ruta real y todos los métodos y firmas en tu controlador? –