2010-07-15 2 views
0

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

$(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

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

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

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

попробовать, используя ...

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

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

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

Смежные вопросы