2013-10-05 3 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 } 

не проверял код, но это должно сработать.

Смежные вопросы