2013-10-05 60 views
0

我有Asp.Net Mvc4應用程序。在一個操作方法,我有一個返回不同JSON結果如下條件的過程:定義json特定字段是否聲明

if(true) 
{ 
    return Json(new { count = cartItm.ProductCount, total = cartItm.TotalAmount }); 
} 
else 
{ 
    return Json(new 
      { 
       thumb = item.ThumbnailPhoto, 
       productName = item.Name, 
       itemCount = cartItem.ProductCount, 
       itemTotal = cartItem.TotalAmount, 
       productTotal = cart.TotalAmount, 
       productCount = cart.CartItems.Sum(items=>items.ProductCount) 
      }); 
} 

jQuery的單擊事件,我不能確定返回哪個JSON。我寫如果條件如下,但得到錯誤的結果。

success: function (data) { 
      if (data.thumb != null) {//some operations } 
      else{//some operations } 

也許是很容易的問題,但我有新的JSON 。請幫幫我。

謝謝回覆

回答

1

檢查 「不確定」,而不是

success: function (data) { 
       if (typeof data.thumb !== "undefined") {//some operations } 
       else{//some operations } 

因爲item.ThumbnailPhoto您的服務器上可能爲空。如果是這種情況,您的支票將失敗。

+0

對,因爲在Javascript中null是一個值。 – Rupesh

+0

謝謝,@Khanh TO。它工作正常。 7分鐘後我可以接受:) –

0

試試這個,

success: function (data) { 
      if (data && data.thumb) {//some operations } 
      else{//some operations } 
} 
0

的問題可能是因爲你沒有data.thumbs在你的第一個JSON,在你的行動做,

if(true) 
{ 
    return Json(new { flag = 1, count = cartItm.ProductCount, total = cartItm.TotalAmount }); 
} 
else 
{ 
    return Json(new 
      { 
       flag = 2, 
       thumb = item.ThumbnailPhoto, 
       productName = item.Name, 
       itemCount = cartItem.ProductCount, 
       itemTotal = cartItem.TotalAmount, 
       productTotal = cart.TotalAmount, 
       productCount = cart.CartItems.Sum(items=>items.ProductCount) 
      }); 
} 

在您的視圖:

success: function (data) { 
      if (data.flag == 1) {//some operations } 
      elseif (data.flag == 2) {//some operations } 

沒有檢查代碼,但這必須工作。