2014-11-05 38 views
0

我正在使用Jquery 1.11.1。我的代码如下,我收到“未定义”响应ajax调用。任何人都可以请帮我找到解决方案吗?接收未定义的Ajax成功/完整功能

$(document).ready(function() { 
    $("#txtSearch").keyup(function (e) { 
     e.preventDefault(); 
     var x = $("#txtSearch").val(); 
     // alert(x); 
     $.ajax({ 

      type: "POST", 
      url: '@Url.Action("Search","OfficeLocation")', 
      dataType: "application/json; charset=utf-8", 
      data: JSON.stringify({"Location":x}), 
      // dataType: "json", 

      complete: function (data) { 

       var table = "<table class='table'>"; 
       $.each(data, function (index, value) { 
        table += "<tr><td>" + value.Name + "</td></tr>"; 
       }); 
       table += "</table>"; 
       alert(table); 
       $("#myData").html(table); 
      } 
     }); 
    }); 
}); 

和相关的控制器:

public ActionResult Search(string Location) 
    { 
     var LocationViewModel = new List<OfficeAssignment>(); 
     LocationViewModel = db.OfficeAssignments.Where(x => x.Name.StartsWith(Location)).ToList(); 
     return Json(LocationViewModel,JsonRequestBehavior.AllowGet); 

    } 

当我使用的成功,而不是完整的,它不打成功的功能!

回答

0

那是因为完成后成功和错误回调。我认为你遇到了一个错误,所以试着抓住它并看看它收到了什么。

url'@ Url.Action(“Search”,“OfficeLocation”)'如何在javascript中计算?这对我来说似乎不是一个有效的网址。

+0

看来这个URL工作并将值发送给控制器,但是不会将json结果返回到完整/成功函数。我看到LocationViewModel包含正确数量的值!那么,还有什么可能导致这个问题?! – user3912257 2014-11-10 18:35:16

+0

尝试添加一个'错误'处理程序并从那里进行调试。或者添加一个try-catch serverside。可能是服务器错误发生。如果服务器返回一些东西,总会有一个响应。另一件事是检查POST请求到服务器,并查看它在浏览器的开发人员工具中返回的内容。 – 2014-11-10 19:01:53

+0

我得到了[object] [object]。我试着去读取这个值的属性名称,但仍然显示类似的对象。 – user3912257 2014-11-16 16:40:18