我想使用jQuery对我的MVC控制器进行简单的调用。我能够调试服务器端,这意味着控制器选择了ajax调用并返回所请求的信息。但是在服务器端返回后,客户端永远不会更新。当我使用FireBug调试脚本时,客户端卡在jquery-1.4.1.js的handle()中的event.isImmediatePropagationStopped()上。这是否意味着客户端根本没有回电话?请帮忙。
$('#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 :(得分:3)
您是否验证过您的json响应? http://api.jquery.com/jQuery.getJSON/州:
从jQuery 1.4开始,如果是JSON文件 包含语法错误,请求 通常会默默地失败。
直接在浏览器中打开处理程序,然后将其复制并粘贴到此处: http://www.jsonlint.com/
答案 1 :(得分:0)
我认为这可能是因为你使用了一个完整的网址“http://localhost:3958/home” - jquery可能会认为你的跨域会尝试jsonp调用。检查firebug的一种简单方法是查看是否请求了脚本或尝试了xhr调用,jsonp调用还会向查询字符串附加回调参数。
尝试将网址更改为'/home/GetZipInfo?id=' + this.value
答案 2 :(得分:0)
试试这个,
var ID = $('#ToZip')。val();
var url ='<%= Url.Content(“〜/”)%>' +“home / GetZipInfo”;
$。的getJSON( url,{id:ID}, 功能(结果){ $(“#ToCity”)。val = result.City; $(“#ToState”)。val = result.State; } );
答案 3 :(得分: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"
});
答案 4 :(得分:0)
如果你使用ASP.Net MVC 3,那么尝试使用它。
$('#btnGetProduct').click(function () {
$.getJSON("/Home/getproduct", { code: tcode.value }, function (data) {
$('#tname').val(data.Pr_Name);
});
});