2010-09-20 66 views
2

我想用jQuery来简单地调用我的MVC控制器。我能够调试服务器端,这意味着控制器拿起ajax调用并返回请求的信息。但客户端在服务器端返回后从不更新。当我使用FireBug来调试脚本时,客户端停留在jquery-1.4.1.js的handle()中的event.isImmediatePropagationStopped()上。这是否意味着客户端根本没有被回复?请帮忙。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); 
} 

在此先感谢

回答

0

我想这可能是因为你使用一个完整的URL“http://localhost:3958/home” - jQuery的可能会认为你去跨域所以尝试进行JSONP调用。检查萤火虫的简单方法是查看脚本是否被请求或尝试xhr调用,jsonp调用还将查询字符串附加回调参数。

尝试改变,只是'/home/GetZipInfo?id=' + this.value

0

尝试这种方式,

VAR ID = $( '#ToZip')VAL()。 ;

var url ='<%= Url.Content(“〜/”)%>'+“home/GetZipInfo”;

$ .getJSON( URL,。。{ID: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); 
     }); 
    });