c# - mvc post action json 未解析为参数

标签 c# javascript jquery asp.net-mvc gridview

我在 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/

相关文章:

c# - 在ASP.NET Core 2和Entity Framework Core 2中查询表中附近的位置

c# - 修剪字符串,删除 c# 中的最后一个字符

javascript - 如何将循环重写为递归

javascript - 如何在 Puppeteer 中迭代 html 标签以获取带有通配符的innerText?

javascript - Angular 2 对表格列进行排序

javascript - jQuery 数据表、TableTools 插件按钮不可见

c# - 使用多播委托(delegate)链接函数

java - MineCraft 启动器代码无法使用 CSharp

javascript - 在 JSON 或 Javascript 对象中递归搜索

javascript - jQuery ajax - 没有 jQuery css