0

WebAPIのアイテムのリストを取得しようとしています

ajaxメソッドは次のようになります

       $.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" };
    }

正しい基準は何ですか。上記の標準は正しいですか、またはページ番号とページサイズをURLに入れて、別のルートを作成する必要があります。

4

1 に答える 1

1

一般に、GETを介して本文を送信することはお勧めしません(または禁止することもできます)。有効なのはクエリ文字列だけです。

メソッドを削除するJSON.stringifyと、ajax呼び出しは次のようになります。

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

自動的にクエリ文字列に変換されます。を使用するJSON.stringifyと、クエリ文字列でJSON表記が取得され、間違ったものになります。を使用してFiddlerを見るとJSON.stringify、URLは次のようになります。

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

そして、あなたの行動は次のようになります。

public IEnumerable<string> Get([FromURI]PagingInfo pagingInfo)
{   
    return new string[] { "value1", "value2" };
}
于 2013-02-27T17:00:18.993 に答える