jQuery getJson()不能在ASP.NET MVC中使用

时间:2010-09-20 05:30:23

标签: .net jquery asp.net-mvc ajax

我想使用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);
}

提前致谢

5 个答案:

答案 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);
        });
    });