0

我有Asp.Net Mvc4应用程序。在一种 Action 方法中,我有条件过程返回不同的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。我写 if 条件如下但得到错误的结果。

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

也许这是一个非常简单的问题,但我是json新手。请帮我。

谢谢您的回复

4

3 回答 3

1

改为检查“未定义”

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

因为item.ThumbnailPhoto在您的服务器上可能为空。如果是这种情况,您的检查将失败。

于 2013-10-05T10:33:29.570 回答
0

尝试这个,

 success: function (data) {
          if (data && data.thumb) {//some operations }
          else{//some operations }
 }
于 2013-10-05T10:35:15.177 回答
0

问题可能是因为您data.thumbs的第一个 json 和 Action 中没有,

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 }

没有检查代码,但这必须有效。

于 2013-10-05T10:35:48.647 回答