C# mvc post action json未解析为参数

C# mvc post action json未解析为参数,c#,javascript,jquery,asp.net-mvc,gridview,C#,Javascript,Jquery,Asp.net Mvc,Gridview,我在控制器中有动作: [POST] public JsonResult ApproveOrders(Guid[] ordersIdToApprove) { [...] return Json(dataToReturn); } 我试图通过javasrcript从视图中调用它: function ApproveAllClicked(e, c) { var url = $("#ApproveButton").data("url"); var data = { ordersIdToA

我在控制器中有动作:

[POST]
public JsonResult ApproveOrders(Guid[] ordersIdToApprove)
{
    [...]
    return Json(dataToReturn);
}
我试图通过javasrcript从视图中调用它:

function ApproveAllClicked(e, c) {
var url = $("#ApproveButton").data("url");

var data = { ordersIdToApprove: DataGrid.GetSelectedKeysOnPage() };
$.ajax({
    type: "POST",
    url: url,
    data: data,
    dataType: 'application/json'
    });
}
GetSelectedKeysOnPage()是来自Devexpress Mvc GridView的机制。它以以下格式返回网格中所有选定行的id:

["3a19f538-0cf6-e311-93f5-000c2948090b", "71021f74-f308-e411-93f5-000c2948090b"]

已调用控制器中的操作,但参数中的数组为空。我做错了什么?

在ajax选项中,添加

traditional: true,
如果未设置,则

items : ["A", "B"]
将作为

items[]=A&items[]=B
而不是

items=A&items=B

您是否尝试中断return语句以查看“dataToReturn”变量中是否有任何数据?您的ajax调用或操作方法没有问题,我只是用硬编码数据对它们进行了测试&一切正常。你能调试js控制台上的
DataGrid.GetSelectedKeysOnPage()
函数并查看它返回了什么吗?@markpsmith-guids在我的帖子中是从DataGrid.GetSelectedKeysOnPage()收到的实际数据。