2010-09-20 2 views
2

Я хочу использовать jQuery для простого вызова моего MVC-контроллера. Я смог отладить серверную сторону, то есть контроллер взял вызов ajax и вернул запрошенную информацию. Но клиентская сторона никогда не обновляется после возвращения серверной части. Когда я использую FireBug для отладки сценария, клиентская сторона застревает в event.isImmediatePropagationStopped() в handle() jquery-1.4.1.js. Означает ли это, что клиентская сторона просто не получила обратного звонка? Пожалуйста помоги.jQuery getJson() не работает в ASP.NET MVC

$('#ToZip').blur(function() { 
    $.getJSON('http://localhost:3958/home/GetZipInfo?id=' + this.value, 
     function(result){ 
      $("#ToCity").val = result.City; 
      $("#ToState").val = result.State; 
     } 
    ) 
}); 

public ActionResult GetZipInfo(string id) 
{ 
    // some code to prepare return value, zip 
    return Json(zip, JsonRequestBehavior.AllowGet); 
} 

Заранее спасибо

ответ

3

Вы подтвердили свой ответ JSon? http://api.jquery.com/jQuery.getJSON/ состояния:

По JQuery 1.4, если файл JSON содержит синтаксическую ошибку, то запрос будет обычно не молча.

Open вы обработчика непосредственно в браузере, а затем скопировать и вставить его сюда: http://www.jsonlint.com/

0

Я думаю, что это может быть, потому, что вы используете полный URL «http://localhost:3958/home» - JQuery может подумать, ваш будет междоменное так пытает JSONP вызов. Легкий способ проверки в firebug - проверить, был ли запрошен скрипт или попытка вызова xhr, вызов jsonp также добавляет параметр обратного вызова в строку запроса.

Попробуйте изменить URL только '/home/GetZipInfo?id=' + this.value

0

попробовать этот способ,

вар ID = $ ('# ToZip') Вал(). ;

var url = '<% = Url.Content ("~ /")%>' + "home/GetZipInfo";

$ .getJSON ( URL,.. {ID: ИД}, функции (результат) { $ ("# ToCity") = Val result.City; $ ("# ToState") = Val результат .State; } );

0

Если вы используете ASP.NET MVC 2.0, попробуйте использовать "POST" против «GET» в методе, например:

$.ajax({ 
    type: 'POST', 
    url: 'http://localhost:3958/home/GetZipInfo', 
    data: {id: this.value }, 
    success: function(data) { 
     $("#ToCity").val = data.City; 
     $("#ToState").val = data.State; 
    } 
    dataType: "json" 
}); 
0

Если вы используете ASP.Net MVC 3, попробуйте с этим.

$('#btnGetProduct').click(function() { 
     $.getJSON("/Home/getproduct", { code: tcode.value }, function (data) { 

      $('#tname').val(data.Pr_Name); 
     }); 
    });