2014-04-08 49 views
1

我有這樣的困難時間讓我的json變量超出了我的json調用我的asp.net mvc控制器類的ajax調用。這裏是我的jQuery Ajax調用:使用jquery解析json時未定義變量

$.ajax({ 
     url: '@Url.Action("ReturnTotals", "Cart")', 
     type: 'POST', 
     datatype: 'json', 
     success: function (jsonData) { 
      var totals = $.parseJSON(jsonData); 
      var cost = totals.cost; 
      var qty = totals.qty; 
      $("#totalCost").html(cost); 
      $("#totalQty").html(qty); 
      console.log(cost); 
      console.log(qty); 
      console.log($.parseJSON(jsonData)); 
     } 
    }); 

我的第2個console.logs回來未定義。而第三吐出

[Object { Key="cost", Value=109}, Object { Key="qty", Value=12}] 

我已檢查與jsonlint該行,這是很好地形成JSON。對於「var cost = totals.cost;」行我試圖改變它「var cost = totals [」cost「];」並沒有做任何事情。

這裏是我的服務器端功能:

public string ReturnTotals() 
    { 
     CartSummaryModel cart = null; 
     CartModel m = null; 
     cart = (CartSummaryModel)cXML.cXML.DeserializeObject(Session["CARTSUMMARY"].ToString(), typeof(CartSummaryModel)); 
     Dictionary<string, double> totals = new Dictionary<string, double>(); 
     totals.Add("cost", cart.TotalCost); 
     totals.Add("qty", cart.TotalQty); 
     string totalString = cXML.cXML.SerializeJson(totals); 
     return totalString; 
    } 
+0

您正在返回一個數組所以要訪問它寫'總[0 ] .cost' – Bellash

+0

仍然返回'undefined' – dmikester1

回答

1

有assp.net MVC中默認的Json串行器,你可以使用!其實,我並不想使用你的串行勸阻你,但這裏是什麼工作我

 public JsonResult ReturnTotals() 
    { 
     CartSummaryModel cart = null; 
     CartModel m = null; 
     // cart = (CartSummaryModel) Session["CARTSUMMARY"] ; 
     Dictionary<string, double> totals = new Dictionary<string, double>(); 
     totals.Add("cost", cart.TotalCost); 
     totals.Add("qty", cart.TotalQty); 
     return Json(totals,"text/json",JsonBehavour.AllowGet); 
    } 

和jQuery

 $(document).ready(function(){ 
     var url='@Url.Action("ReturnTotals", "Cart")'; 
     $.getJSON(url).done(function (jsonData) { 
     var totals =[]||jsonData; 
     var cost = totals.cost; 
     var qty = totals.qty; 
     $("#totalCost").html(cost); 
     $("#totalQty").html(qty); 
     console.log(cost); 
     console.log(qty); 
    });  

     }); 
+0

這工作!使用我的舊方法傳遞的json一定是錯誤的。非常感謝! – dmikester1