发送json时ajax http post给出错误500

时间:2014-02-25 15:30:42

标签: jquery asp.net-mvc json http-post

我正在尝试使用ajax中的HTTP POST方法将json数据作为文本发送到我的MVC4项目中的控制器。这是我的ajax代码:

function saveService() {
        var data0 = $("#nameInput").val();
        var data1 = generateJSON();
        var data2 = $("#wellContainer").html();
        var jsondataobject = { name: data0, counter: counter, json: data1, html: data2 };
        var stringobject = JSON.stringify(jsondataobject);
        console.log(stringobject);

        console.log(data1);
            $.ajax({
                type: 'POST',
                dataType: 'text',
                url: "http://localhost:49162/Admin/SaveNewTemplate",
                data: "jsonData=" + stringobject,
                success: function (returnPayload) {
                    console && console.log("request succeeded");
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    console && console.log("request failed");
                },

                processData: false,
                async: false
            });
    }

这是我的控制器方法

[HttpPost]
public void SaveNewTemplate(String jsonData)
{
    DataAccessLayer DAL = new DataAccessLayer();
    DAL.SaveServiceTemplate(jsonData);
}

这是我在控制台中的错误:

POST http://localhost:49162/Admin/SaveNewTemplate 500 (Internal Server Error) 

我的stringobject是一个转换为字符串的正确json对象。如果我用一些随机文本替换ajax函数中的这个变量就行了。

为什么我会收到500错误?

1 个答案:

答案 0 :(得分:0)

似乎是发送jsondataobject的问题。所有对象都应该带引号: {" name":data0," counter&#34 ;: counter," json":data1," html":data2}

此外:  数据:" jsonData =" + stringobject, 应该: data:stringobject,

(假设变量计数器正在正确填充,因为代码片段中未提及)