将通用JSON数据发送到MVC2控制器

时间:2011-04-12 08:38:14

标签: json asp.net-mvc-2 parameters controller

我有一个javascript客户端,它将json格式的数据发送到一组MVC2控制器。客户端将格式化json,并且控制器将不知道如何将json解释为任何模型。因此,我无法将Controller方法参数转换为已知的模型类型,我只想抓取通用的json并将其传递给某种类型的工厂。

我的ajax电话:

function SendObjectAsJSONToServer(object,url,idForResponseHTML) {
    // Make a call to the server to process the object
    var jsonifiedObject = JSON.stringify(object);
    $.ajax({
        url: url // set by caller
            , dataType: 'json'
            , data: jsonifiedObject
            , type: 'GET'
            , error: function(data) { alert('error in sendObjectAsJSONToServer:' + data); }
            , success: function(data) {
                alert(data.message); // Note that data is already parsed into an object
            }
    });
}

我的MVC控制器:

public ActionResult SaveForm(string obj)
{
    // Ok, try saving the object
    string rc = PassJSONToSomething(obj.ToString());
    string message = "{\"message\":\""+rc+"\",\"foo\":\"bar\"}";
    return new ContentResult { Content = message, ContentType = "application/json" };
}

问题是obj始终为null。任何人都可以告诉我应该如何构造ajax调用和控制器参数,以便让我的json到服务器?我正在使用MVC2。这似乎是一些SO问题的重复,但在我的情况下,我不知道json映射到的模型,所以我不能在控制器参数类型中使用特定的模型类型。

非常感谢。

1 个答案:

答案 0 :(得分:0)

你有没有尝试过类似的东西?

$.ajax({
        url: url // set by caller
            , dataType: 'json'
            , data: {obj :jsonifiedObject}
            , contentType: 'application/json; charset=utf-8'
            , type: 'GET'
            , error: function(data) { alert('error in sendObjectAsJSONToServer:' + data); }
            , success: function(data) {
                alert(data.message); // Note that data is already parsed into an object
            }
    });