如何编写控制器操作以从ajax或json调用接收数据?

时间:2014-03-24 23:28:27

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

我正在尝试使用我的asp.net视图调用我的控制器。操作的object参数始终为null。由于这对我来说是新的,我以为我必须使用错误的结果类型。我正在使用

Public ActionResult(Object data)
{
    return view();
} 

经过研究,我觉得我可能需要使用这样的东西:

     Public JsonResult(object data)
     {
         Return something();
     }

我的问题基于下面的脚本,我是否需要在控制器中使用特定的使用语句?我的行为应该是ViewResult还是JsonResult?

如果需要JsonResult,我如何编码以从下面的ajax json代码接收数据。

<script type = "text/javascript">
$(function() {

    var data = [
        ["", "Kia", "Nissan", "Toyota", "Honda"],
        ["2008", 10, 11, 12, 13],
        ["2009", 20, 11, 14, 13],
        ["2010", 30, 15, 12, 13]
    ];

    var $container = $("#myHandsonTable");

    $container.handsontable({
        data: data,
        startRows: 15,
        startCols: 16,
        rowHeaders: true,
        colHeaders: true,
        useFormula: true,
        minSpareCols: 1,
        minSpareRows: 1,
        contextMenu: true,

        outsideClickDeselects: false,
        removeRowPlugin: true,
        useFormula: true
    });

    $container.handsontable("loadData", data);

    var handsontable = $container.data('handsontable');

    $("#save").click(function() {

        console.log(handsontable.getData());
        console.log(data);
        var myData = handsontable.getData();
        myData = JSON.stringify(myData);
        $.ajax({
            url: "/Home/tableData",
            type: "POST",

            data: handsontable.getData(),
            dataType: 'json',
            success: function(data) {
                alert(data);
            }
        });
    });

});
</script>
<button id="save">Click Me</button >

1 个答案:

答案 0 :(得分:0)

如果没有看到你的getData函数,我只能假设你将它作为键值对发送。我相信您需要发布数据:{data:{}},以便将控制器作为控制器中的数据变量命中。您发布的js对象中的键映射到控制器操作的参数名称。