2017-03-05 11 views
0

私はモデルがあります。私はしばらくの間ウェブフォームを使っていました。しかし、私はasp.net mvcで新しいです。この件に関する知識はほとんどありません。私はあなたにこれを手伝って欲しい。私はajaxでデータを取得する必要があります。私を助けてください。jsonオブジェクトをajaxで取得するasp.net mvc

public class BasketModel 
    { 

     public int id { get; set; } 
     public int name { get; set; } 
     public int summary { get; set; } 
     public int price { get; set; } 
     public int quantity { get; set; } 
     public int image { get; set; } 

    } 

私はコントローラーのモデルに慣れていました。そしてjsonに変換されました。返されます。

public JsonResult Test() 
     { 
      BasketModel basket = new BasketModel 
      { 
       id = 1, 
       name = 1, 
       image = 1, 
       price = 1, 
       quantity = 1, 
       summary = 1 
      }; 
      var jsonSerializer = new JavaScriptSerializer(); 
      var jsonbasket = jsonSerializer.Serialize(basket); 

      return Json(jsonbasket,JsonRequestBehavior.AllowGet); 
     } 

私は以下のようなAJAXでこれをやりたいindex.cshtml

$('.my-cart-btn').myCart({ 
         showCheckoutModal: true, 
         cartItems : { 
            "id":1, 
            "name":1, 
            "summary":1, 
            "price":1, 
            "quantity":1, 
            "image":1 
            } 
          }), 

に次のようにスクリプトオブジェクトになりたいです。

    cartItems : 
          $.ajax({ 
           type: 'POST', 
           dataType: 'json', 
           url: '/Product/Test', 
           success: function (data) { 
            alert(data); 
           } ,         
           data: JSON.stringify(data), 
           error: function(jqXHR, textStatus, errorThrown)       { 
            alert('Error - ' + errorThrown); 
           } 
          }), 
+1

これらのデータをすべてajax呼び出しを使用してページに表示する場合は、MVCの部分表示を使用してモデルを部分ビューで直接バインドできます。ちょっとした考え。 –

答えて

1

不必要にシリアル化しているようです。 Jsonメソッドは、JSONとしてオブジェクトをクライアントに送り返すことができます。

public JsonResult Test() 
{ 
    var basket = new BasketModel 
     { 
      id = 1, 
      name = 1, 
      image = 1, 
      price = 1, 
      quantity = 1, 
      summary = 1 
     }; 
    return Json(basket,JsonRequestBehavior.AllowGet); 
} 

MVCの最新バージョンは、画面の後ろにNewtonsoft Json.NETシリアライザを使用します。 JavaScriptSerializerのmsdn documentationでもJSON.NETの使用をお勧めします

今度はsuccessイベントで、必要に応じてJSONオブジェクトを使用できます。

success: function (data) { 
           $('.my-cart-btn').myCart({ 
            showCheckoutModal: true, 
            cartItems : data 
           }); 
          } , 
+0

私はjsonのシリアル化を使用しません。しかし私はアラートエラーメッセージ.500内部を与える。 –

+0

このようにする必要はありませんか? 'cartItems: $アヤックス({ .. 成功:機能(データ){ $()myCart({ showCheckoutModal:真、 cartItems: '私のカート-BTN。' データ}); }); エラー:..... } })、 ' –

+0

あなたの 'myCart'メソッドは何をしているのですか?あなたに伝えることはできません – Shyju

関連する問題