将JSON发送到Controller Action时遇到问题

时间:2013-02-25 10:31:19

标签: jquery asp.net-mvc json asp.net-mvc-3

我正在尝试将Json数据发送到我的Controller Action。

JQuery的

function SaveConnection() {
    debugger;
    var CardConnection = {
        ConnectionDetails: []
    };

    var allConn = jsPlumb.getAllConnections();
    var length = allConn["green dot"].length;
    for (var i = 0; i < length; i++) {
        CardConnection.ConnectionDetails.push({
            "CardIDFrom": allConn["green dot"][i].sourceId,
            "CardIDTo": allConn["green dot"][i].targetId
        });
    }

    var CardDetails = $('#CardDetails');
    var url = CardDetails.attr('save-data');
    $.ajax({
        url: url,
        data: JSON.stringify(CardConnection),
        type: 'POST',
        contentType: 'application/json, charset=utf-8',
        dataType: 'json'
    });
    return false;
}

控制器操作

public ActionResult SaveConnections(List<CardConnection> ConnectionList)
{
    return Json(ConnectionList);
}

问题是 - 它在行动的参数中始终显示为空。

2 个答案:

答案 0 :(得分:1)

变量应该是这样的

var CardConnection = {
        ConnectionList: []
    };

它应该不是这样的

var CardConnection = {
        ConnectionDetails: []
    };

为什么?

在action参数中,变量名称为ConnectionList

答案 1 :(得分:0)

我遇到了类似的问题。解决方案是告诉iis mime类型的json,因为默认情况下无法处理它。

添加 <staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent>

将web.config作为system.webServer的子级。