0

我正在尝试将 Json 数据发送到我的控制器操作。

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

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

4

2 回答 2

1

变量应该是这样的

var CardConnection = {
        ConnectionList: []
    };

不应该是这样的

var CardConnection = {
        ConnectionDetails: []
    };

为什么 ?

在动作参数中,变量名称是ConnectionList

于 2013-02-25T10:46:37.627 回答
0

我遇到了类似的问题。解决的办法是告诉iis是json的mime类型,因为默认不能处理。

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

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

于 2013-02-25T10:58:06.740 回答