2015-12-21 41 views
0

我使用asp.net web表单,并试图调用使用AJAX Java脚本函数返回一个JSON阵列与汽车号码和车牌号ID对 的Web服务方法Web方法驻留在背后 的Java脚本函数页的文件相同的代码我使用调试器检查JSON变量超过一次,并确保其持有有效的JSON数组 然而,当我检查了汽车在FillLimoCars Java脚本对象函数我发现响应文本是一个空数组 我不知道为什么会发生这种情况我希望你们中的任何人都能够帮助Ajax响应文本始终是空

Java脚本

  function testButton(carModelID) { 
      $.ajax({ 
       type: "POST", 
       url: baseURL + "WebPages/NewPages/ListCarRental.aspx/FillLimoCars", 
       data: "{CarModelID:'" + carModelID + "'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       complete: FillLimoCar 
       }); 
     } 

     function FillLimoCar(cars) 
     { 
      var rdd_LimoCars = $find("<%=rdd_LimoCarNumber.ClientID %>"); 
      var comboItem = new Telerik.Web.UI.RadComboBoxItem(); 
      for(var i = 0; i < cars.length; i++) 
      { 
       ; 
      } 
     } 

C#

[WebMethod] 
public static string FillLimoCars(int CarModelID) 
{ 
    try 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     List<LimoFleet> limos = carsBLL.GetCarModelLimoFleet(CarModelID); 
     List<object> objLimosList = new List<object>(); 
     foreach(var limo in limos) 
     { 
      var limoObj = new 
      { 
       CarID = limo.CarID, 
       CarNumber = limo.CarNumber 
      }; 
      objLimosList.Add(limoObj); 
     } 
     var json = serializer.Serialize(objLimosList); 
     return json; 
     //Context.Response.Write(objLimos.ToJson()); 
    } 
    catch (Exception ex) 
    { 
     Tracer.Singleton.Log(ex); 
     return null; 
    } 
} 
+0

你检查了你的FillLimoCars函数来验证它是否返回值? –

+0

@Sergio 是的,它正在返回一个有效的JSON数组,如上所述 – Scarnet

回答

0

你必须用成功的属性。在成功内部,你必须去序列化JSON对象。

$.ajax({ 
       type: "POST", 
       url: baseURL +  "WebPages/NewPages/ListCarRental.aspx/FillLimoCars", 
       data: "{CarModelID:'" + carModelID + "'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       "success": function (json) { 
         if (json.d != null) { 
           FillLimoCars(json.d); 
          } 
        }); 
+0

我试过使用成功属性仍然得到了相同的结果,我不明白为什么它会产生差异 – Scarnet

+0

尝试在浏览器中调试。记录输出console.log(json.d)并查看它返回的内容。 –

+0

已经完成了,它返回一个空数组“{”d“:”[]“}”@Pradeep – Scarnet