2013-11-25 105 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});