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

发布于 2024-10-31 21:17:49 字数 1238 浏览 1 评论 0原文

我有一个 javascript 客户端,它将向一组 MVC2 控制器发送 json 格式的数据。客户端将格式化 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 映射到的模型,因此我无法在控制器参数类型中使用特定的模型类型。

非常感谢。

I have a javascript client that is going to send json-formatted data to a set of MVC2 controllers. The client will format the json, and the controller will have no prior knowledge of how to interpret the json into any model. So, I can't cast the Controller method parameter into a known model type, I just want to grab the generic json and pass it to a factory of some sort.

My ajax call:

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

My MVC Controller:

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

The problem is that obj is always null. Can anyone tell me how I should structure the ajax call and the controller parameter so that I get my json to the server? I'm using MVC2. This may appear to be a duplicate of some SO questions, but in my case I do not know the Model that the json maps to, so I can't use a specific model type in the controller parameter type.

Thanks very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

记忆消瘦 2024-11-07 21:17:49

你尝试过类似的事情吗?

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

Have you tried something like that?

$.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
            }
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文