动作在ajax post后收到一个空字符串

时间:2014-09-02 09:53:15

标签: jquery asp.net-mvc json

我有一个js功能:

使用Javascript:

function Post()
{
    var table = $('#table4').dataTable();
    var data = table.$('input:text').serialize();
    console.log(data);

    $.ajax({
        type: "POST",
        url: '@Url.Action("SaveList")',
        data: JSON.stringify(data),
        dataType: "json",
        contentType: 'application/json',
        success: function () {
            alert('success');
        },
        error: function () {
            alert('error');
        }

    });
}

动作:

[HttpPost]
    public ActionResult SaveList(string serializedString)
    {
        var a = serializedString;
        return RedirectToAction("CustomersList");
    }

问题是操作收到一个空的sting console.log(data)显示,有内容,如果我在控制器上放置断点,它会停止,但 serializedString 为空。哪里可能有问题?谢谢!

2 个答案:

答案 0 :(得分:1)

从ajax函数中移除两个语句" dataType:" json"和contentType:' application / json',"试试这个

function Post()
{
    var table = $('#table4').dataTable();
    var data = table.$('input:text').serialize();
    console.log(data);

    $.ajax({
        type: "POST",
        url: '@Url.Action("SaveList")',
        data: JSON.stringify(data),

        success: function () {
            alert('success');
        },
        error: function () {
            alert('error');
        }

    });
}

答案 1 :(得分:0)

谢谢你们,我解决了一个问题。这是我现在的代码,也许以后我会改变它。

<强>使用Javascript:

function Post()
{
    var table = $('#table4').dataTable();
    var data = table.$('input:text').serialize();
    console.log(datas);
    $.ajax({
        type: "POST",
        url: '@Url.Action("SaveList")',
        data: data,
        datatype: 'json',
        success: function () {
            alert('success');
        }
    });
}

<强>动作:

    public ActionResult SaveList(List<string> inputgrams, List<string> id)
    {
       ...
    }