0

Asp.Net Mvc4アプリケーションがあります。1 つの 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サーバー上ではnullになる可能性があるためです。この場合、チェックは失敗します。

于 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 にないことが原因である可能性があります。

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 に答える