【问题标题】:mvc post action json is not parsed to argumentsmvc post action json 未解析为参数
【发布时间】:2014-07-14 09:18:39
【问题描述】:

我在控制器中有操作:

[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'
    });
}

DataGrid.GetSelectedKeysOnPage() 是 Devexpress Mvc GridView 的机制。它以这种格式返回网格中所有选定行的 ID:

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

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

【问题讨论】:

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

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


【解决方案1】:

在你的 ajax 选项中,添加

traditional: true,

如果没有设置,那么

items : ["A", "B"]

将发布为

items[]=A&items[]=B

而不是

items=A&items=B

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多