0

並べ替えが有効になっている剣道グリッドがあります。jQueryを使用してajaxポストバックを実行し、ソート情報をアクションメソッドに送信してアクションを実行したいと考えています。

var datasource = $(".data-table").data("kendoGrid").dataSource;
$.ajax({
    type: 'POST',
    url: '@Url.Action("ExportToPDf", "MyController")',
    dataType: 'json',
    data: { sort: datasource._sort } 
});

debugger正しい値が取得され、ajax の data 属性に渡されていることがわかります。FireBug を使用して、POST アクション中に値が渡されることを確認しました。

public ActionResult ExportToPDf(List<SortDescription> sort)
{
    //Will be doing some action
    return null;
}

public class SortDescription
{   
    public string dir { get; set; }
    public string field { get; set; }
}

POST アクション中の Firebug からのサンプル データ

sort[0][dir]    asc
sort[0][field]  EmployeeRef

アクション メソッドでブレークポイントを保持すると、リスト内の 1 つの項目を取得できますが、プロパティが null のように見えます。

誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

2

次のようなことを試してください:

$.ajax({
    url: '@Url.Action("ExportToPDf", "MyController")',
    type: 'POST',
    dataType: 'json',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({sort: datasource._sort })
 })
于 2012-12-18T14:38:50.217 に答える