【问题标题】:jQuery getJson() not working with in ASP.NET MVCjQuery getJson() 不能在 ASP.NET MVC 中使用
【发布时间】:2010-09-20 05:30:23
【问题描述】:

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

提前致谢

【问题讨论】:

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


    【解决方案1】:

    您是否验证了您的 json 响应? http://api.jquery.com/jQuery.getJSON/ 状态:

    从 jQuery 1.4 开始,如果 JSON 文件 包含语法错误,请求 通常会默默地失败。

    直接在浏览器中打开您的处理程序,然后将其复制并粘贴到此处: http://www.jsonlint.com/

    【讨论】:

      【解决方案2】:

      我认为这可能是因为您使用了完整的 url "http://localhost:3958/home" - jquery 可能会认为您正在跨域,因此尝试进行 jsonp 调用。检查 firebug 的一种简单方法是查看是否请求了脚本或尝试了 xhr 调用,jsonp 调用还会将回调参数附加到查询字符串。

      尝试将网址更改为 '/home/GetZipInfo?id=' + this.value

      【讨论】:

        【解决方案3】:

        试试这个方法

        var ID = $('#ToZip').val();

        var url = '' + "home/GetZipInfo";

        $.getJSON( 网址,{ id:ID }, 函数(结果){ $("#ToCity").val = result.City; $("#ToState").val = result.State; } );

        【讨论】:

          【解决方案4】:

          如果您使用 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"
          });
          

          【讨论】:

            【解决方案5】:

            如果您使用的是 ASP.Net MVC 3,那么试试这个。

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-05-03
              • 2016-03-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-11-13
              • 2010-11-09
              • 2017-08-30
              相关资源
              最近更新 更多