2013-02-27 3 views
0

Я пытаюсь получить список элементов в WebAPIЧтение значения из метода GET для WEB API

Аякса методы выглядит следующим образом

 $.ajax({ 
      type: 'GET', 
      url: 'api/values', 
      data: JSON.stringify({ pageNo: pageNo + 1, pageSize: pageSize }), 
      contentType: 'application/json' 
     }); 

В контроллере значения я не могу получить значения.

мой контроллер выглядит следующим образом.

public IEnumerable<string> Get([FromURI] pagingInfo) 
    { 
     return new string[] { "value1", "value2" }; 
    } 

Каков правильный стандарт. Является ли приведенный выше стандарт правильным или должен поставить pageno и страницы в url и создать другой маршрут.

ответ

1

Как правило, не рекомендуется (или даже запрещено), чтобы отправить тело через GET, просто только строка запроса является действительным:

метод JSON.stringify Удаление, ваш Ajax вызов должен быть:

$.ajax({ 
    type: "GET", 
    url: "/api/values", 
    data: { pageNo: 1, pageSize: 2 }, 
    success: function (data) { 
    } 
}); 

Это автоматически преобразуется в строку запроса, если вы используете JSON.stringify, вы получите нотацию JSON в строке запроса и сделаете это неправильно. Если вы посмотрите на Скрипач, используя JSON.stringify, то URL, как:

/api/values?{%22PageNo%22:1,%22PageSize%22:2} 

И ваше Действие до:

public IEnumerable<string> Get([FromURI]PagingInfo pagingInfo) 
{ 
    return new string[] { "value1", "value2" }; 
} 
+0

Моя путаница, в веб-API мы имеем метод, называемый прибудете. Например, говорят продукты, что маршрут - api/products. если вы хотите продукт 1, то маршрут выглядит как api/products/1, где 1 - это идентификатор. Теперь скажем, предположим, что для лучшей масштабируемости вы хотите получить выгруженные продукты. URL-адрес может выглядеть как api/products/1-25, где 1 - страница, а 25 - количество элементов. Если отправка тела запрещена, то какой правильный подход к этому? если api/products/1-25 - это правильный способ объявления, то api/products/1 будет терпеть неудачу, потому что мы не знаем, как его интерпретировать. –

Смежные вопросы