Отправка общих данных JSON на контроллер MVC2 - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть клиент 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 всегда равен нулю.Может кто-нибудь сказать мне, как я должен структурировать вызов ajax и параметр контроллера, чтобы я получил свой JSON на сервер?Я использую MVC2.Это может показаться дубликатом некоторых вопросов SO, но в моем случае я не знаю модель, на которую отображается json, поэтому я не могу использовать конкретный тип модели в типе параметра контроллера.

Большое спасибо.

1 Ответ

0 голосов
/ 12 апреля 2011

Вы пробовали что-то подобное?

$.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
            }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...