2013-11-25 152 views
1

我正在開發一個visual studio 2012 MVC程序。如何通過ajax傳遞json數據?

我使用ajax發送數據到控制器,並希望控制器返回一個html的主體。數據是json格式。數據是一個字符串名稱和十進制TotFees。

我發現公共ActionResult ImmPay(字符串名稱)在控制器中的參數值始終爲空。最後,我試圖傳遞名稱,但控制器端名稱的值仍然爲空。

我的代碼有什麼問題,以及如何解決問題?謝謝。

View: 
    function ImmPay() 
    { 
     var name = "ASP"; 
     var TotFees = 100.01;  

     //var dd = "{\'name\':\'" + name + "\', \'TotFees\':\'" + TotFees + "\'}"; 
     //var dd = "{\'name\':\'" + name + "\', \'TotFees\':\'" + TotFees + "m\'}"; 

     dd = "{\'b\':\'" + b + "\'}"; 
     dd = JSON.stringify(dd); 
     $.ajax({ 
      url: '@Url.Action("ImmPay", "Consult")', 
      type: 'GET', 
      async: true, 
      data: dd, 
      contentType: 'application/json', 
      context: document.body, 
      success: function (response, textStatus, jqXHR) { 
       $("#dialog-immpay").html(response); 
       $("#dialog-immpay").dialog("open"); 
      }, 
      error: function (jqXHR, textStatus, errorThrown) { 
       alert(textStatus); 
      }, 
      complete: function() { 
       ; 
      } 
     }); 

    } 

Controller: 
     public ActionResult ImmPay(string Name) 
     { 
     do something here 
     } 

回答

1

JSON.stringify需要一個對象或數組,並將其轉換成JSON,這樣你就可以建立自己的數據轉換成一個對象,其字符串化,像這樣

dd = JSON.stringify({b: b});