2012-08-23 72 views
1

我想在我的控制器中使用ajax和傳遞一個對象來調用一個方法。當涉及到變量時,我可以很好地做到這一點,但似乎無法使用對象。該方法被稱爲罰款,但對象值始終爲空。我也嘗試使用.toJSON方法,但得到此錯誤未捕獲TypeError:對象函數(a,b){返回新的d.fn.init(a,b,g)}沒有方法'toJSON',是的,我有JSON2包括發送JSON對象到我的Ajax方法在一個controlelr

這是迄今爲止我嘗試:

var VoucherDetails = this.GetVoucherDetails(); 

    $.post("/Vouchers/GetVoucherPreviewTemplate", { "Voucher": VoucherDetails}, 
      function (data) { 


      }); 


    function GetVoucherDetails() 
    { 
     var teet = $("#Title").val();  


     return { Title: teet }; 
    } 


C# 

    [HttpPost] 
     public ActionResult GetVoucherPreviewTemplate(ENT_Voucher Voucher) 
     { 
      return Json(""); 
     } 

這裏是我的ENT_Voucher代碼:

[Serializable] 
    public class ENT_Voucher : ENT_VoucherEntityBase 
    { 
     public int BusinessID { get; set; } 
     public int? SiteID { get; set; } 
     public string Title { get; set; }  
     public string Description { get; set; } 
     public string Code { get; set; } 
     public string Link { get; set; } 
     public DateTime StartDate { get; set; } 
     public DateTime ExpiryDate { get; set; } 
     public string ImageLink { get; set; } 
     public int Status { get; set; } 
     public ENT_Business BusinessDetails { get; set; } 
     public string VoucherTandC { get; set; } 
     public int Type { get; set; } 
     public string DaysRemaining { get; set; } 
     public int RequestCount { get; set; } 
     public bool IsPetoba { get; set; } 

     public ENT_Voucher() 
     { 
      this.BusinessDetails = new ENT_Business(); 
     } 
    } 
+0

你還可以顯示ENT_Voucher C#類嗎?到目前爲止你的代碼看起來沒問題 –

回答

2

你可以把它作爲一個JSON請求,允許你發送任意複雜的對象:

var VoucherDetails = this.GetVoucherDetails(); 
$.ajax({ 
    url: '@Url.Action("GetVoucherPreviewTemplate", "Vouchers")', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({ voucher: VoucherDetails }), 
    success: function(result) { 

    } 
}); 
+0

哇!工作,謝謝! – Funky

0

如果您有JSON2.js,那麼您希望使用JSON.stringify()並將它傳遞給您的AJAX調用中的序列化數據!

相關問題