0

ajax を使用してオブジェクトを渡し、コントローラーでメソッドを呼び出そうとしています。変数に関してはこれを非常にうまく行うことができますが、オブジェクトを使用してそれを行うことはできないようです. メソッドは問題なく呼び出されますが、オブジェクトの値は常に null です。.toJSON メソッドも使用してみましたが、このエラー Uncaught TypeError: Object function (a,b){return new d.fn.init(a,b,g)} has no method 'toJSON' が発生します。はい、JSON2 があります。含まれている

これまでの私の試みは次のとおりです。

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();
        }
    }
4

2 に答える 2

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) {

    } 
});
于 2012-08-23T09:18:31.710 に答える
0

JSON2.js が含まれている場合は、JSON.stringify() を使用してデータを渡し、AJAX 呼び出しでシリアル化します。

于 2012-08-23T21:40:55.453 に答える