JQuery AJAX пост к действию MVC2 - PullRequest
0 голосов
/ 15 июля 2010

Я использую следующий сценарий для отправки и конечной точки, он достигает точки останова на сервере, поэтому я знаю, что маршрутизация правильная.

$(document).ready(function () {
            var o = new Object();
            o.message = 'Hi from the page';
            $.ajax({
                type: 'POST',
                contentType: 'application/json;',
                data: JSON.stringify(o),
                dataType: 'json',
                url: 'home/PingBack',
                success: function (result) {
                    alert(result.success);
                }
            });
        });

Конечная точка на сервере выглядит следующим образом.

public JsonResult PingBack(MHolder message)
        {
            return Json(new { success = "steve"});
        }

и модель выглядит следующим образом.

  public class MHolder
    {
        public string message { get; set; }
    }

Я уверен, что в прошлом значения были автоматически привязаны к модели, но я, кажется, не могу получить что-либо связанное с ним! Даже если я просто передам значение в виде строки, я уверен, что это что-то глупое, что мне не хватает каких-либо идей?

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

Несколько вещей, на которые стоит обратить внимание. Вы отправляете запрос в виде строки JSON (contentType: 'application/json' и JSON.stringify(o)), пока на сервере ожидаете объект типа MHolder. Связыватель модели по умолчанию не будет выполнять это преобразование. Вам нужно будет либо написать пользовательский механизм связывания моделей, способный десериализовать JSON, обратно в экземпляр MHolder, либо отправить запрос в виде key=value пар ( не строковых ):

var o = new Object();
o.message = 'Hi from the page';
$.ajax({
    type: 'POST',
    data: o,
    dataType: 'json',
    url: 'home/PingBack',
    success: function (result) {
        alert(result.success);
    }
});
0 голосов
/ 15 июля 2010

Код кажется мне нормальным, на первый взгляд.

попробуйте использовать ...

data : {message : "Hi from the page."},

... чтобы узнать, вызывает ли это заполнение экземпляра MHolder.

Кроме того, используйте что-то вроде Fiddler, чтобы захватывать ваши запросы и позволять вам точно видеть, что публикуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...