Esiste un modo per passare i parametri di querystring a un controller ASP.NET MVC4 Web Api senza utilizzare le convenzioni OData descritte qui?Passare i parametri di querystring senza utilizzare le convenzioni OData?
http://www.asp.net/web-api/overview/web-api-routing-and-actions/paging-and-querying
devo alcuni metodi di repository costruiti usando Dapper che non supportano IQueryable e vogliono essere in grado di impaginare manualmente senza utilizzare le convenzioni OData, ma ogni volta che provo a farlo il modo in cui ASP.NET tradizionale Ottengo errori "route not found".
Per esempio, ecco un itinerario:
context.Routes.MapHttpRoute(
name: "APIv1_api_pagination",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { area = AreaName, controller = "category", offset = 0, count = 100});
Ed ecco la firma per abbinare
public class CategoryController : ApiController
{
// GET /api/<controller>
public HttpResponseMessage Get(int id, int offset = 0, int count = 0)
E ogni volta che mi passa la seguente query:
http://localhost/api/v1/category/1?offset=10
ottengo il seguente errore:
No action was found on the controller 'Category' that matches the request.
Qualche suggerimento su come utilizzare correttamente querystrings in ASP.NET MVC4 Web Api?
Credo che questo potrebbe essere un bug in WebAPI. Puoi provare a cambiare il parametro del tuo metodo di azione per non avere valori predefiniti (ed emettere una richiesta con tutti i valori richiesti nella stringa della query). – marcind
Sicuramente Marcind, darò una prova. – Aaronontheweb