我在 Controller 中有操作:
[POST]
public JsonResult ApproveOrders(Guid[] ordersIdToApprove)
{
[...]
return Json(dataToReturn);
}
我试图通过 javasrcript 从 View 中调用它:
function ApproveAllClicked(e, c) {
var url = $("#ApproveButton").data("url");
var data = { ordersIdToApprove: DataGrid.GetSelectedKeysOnPage() };
$.ajax({
type: "POST",
url: url,
data: data,
dataType: 'application/json'
});
}
DataGrid.GetSelectedKeysOnPage() 是 Devexpress Mvc GridView 的机制。它以这种格式返回网格中所有选定行的 id:
["3a19f538-0cf6-e311-93f5-000c2948090b", "71021f74-f308-e411-93f5-000c2948090b"]
调用 Controller 中的操作,但参数数组为空。我做错了什么?
最佳答案
在你的ajax选项中,添加
traditional: true,
如果没有设置,则
items : ["A", "B"]
将发布为
items[]=A&items[]=B
而不是
items=A&items=B
关于c# - mvc post action json 未解析为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733216/