Есть ли способ передать параметры запроса на контроллер ASP.NET MVC4 Web Api без использования описанных здесь соглашений OData?Передача параметров запроса без использования соглашений OData?
http://www.asp.net/web-api/overview/web-api-routing-and-actions/paging-and-querying
У меня есть некоторые хранилища методов построены с использованием щеголеватого, которые не поддерживают IQueryable и хотят, чтобы иметь возможность вручную постраничные их без использования конвенций OData, но всякий раз, когда я пытаюсь делать это традиционный способ ASP.NET Я получаю ошибки «маршрут не найден».
Например, вот маршрут:
context.Routes.MapHttpRoute(
name: "APIv1_api_pagination",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { area = AreaName, controller = "category", offset = 0, count = 100});
И вот совпадение подписи
public class CategoryController : ApiController
{
// GET /api/<controller>
public HttpResponseMessage Get(int id, int offset = 0, int count = 0)
И всякий раз, когда я прохожу следующий запрос:
http://localhost/api/v1/category/1?offset=10
Я получаю следующая ошибка:
No action was found on the controller 'Category' that matches the request.
Любые предложения о том, как правильно работать с querystrings в ASP.NET MVC4 Web Api?
Я считаю, что это может быть ошибка в WebAPI. Не могли бы вы попытаться изменить параметр метода действия, чтобы не иметь значений по умолчанию (и выдавать запрос со всеми необходимыми значениями в строке запроса). – marcind
Уверенный marcind, я попробую. – Aaronontheweb