ajax 傳遞數組類型參數后台接收不到的問題


 在做排序功能的時候需要將一個數組的數據傳遞到后台,(當時怎么沒用json,如果用json就沒有那么多的事情了),數據提交采用ajax!

先看代碼

js:

 submitbtn: function () {
            //    提交
            $("#submitbtn").click(function () {
                $.dialog.confirm("確定要提交嗎?", function () {
                    var arr = [];
                    $(".title").each(function () {
                        var orderindex = $(this).data("index")
                        arr.push(orderindex);

                    })
                    //查看數據是否存在
                    console.log(arr);
                    $.ajax({
                        url: "ChangePaymentTypeLevel",
                        data: { array: arr },
                        type: "post",
                        dataType: "json",
                        dynsc: false,
                        //traditional: true,
                        success: function (res) {
                            $.dialog.alert(res, function () {
                                window.parent.location.reload();
                            });
                        }
                    })
                });
            });
        }

后台:

/// <summary>
        /// 批量修改支付類型排序
        /// </summary>
        /// <param name="array"></param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult ChangePaymentTypeLevel(string[] array)
        {
            List<int> list = array.Select<string, int>(b => Convert.ToInt32(b)).ToList();
            var result = ConfigService.ChangePaymentTypeLevel(list);
            if (result)
            {
                return Json("操作成功!");
            }
            else
            {
                return Json("操作失敗!");
            }
        }

 


 問題是:在js中確實拿到了數據,而且在console中可以展示出來,但是ajax提交到后台的時候總是拿不到,不管是用string[] 還是采用List<string>甚至看Request中對象都沒有數據。

查了資料后知道是ajax數據提交的問題,如果是一個數組需要對traditional進行配置://traditional: true;

官方文檔的解釋如下:
traditional 
類型:Boolean,jq中默認為false
如果你想要用傳統的方式來序列化數據,那么就設置為 true。
Set this to true if you wish to use the traditional style of param serialization

嗯,很簡單,自己不知道,如果傳遞數組的話也可以使用json,只不過你用json多了只有可能就忘記了怎么用數組了!

有得必有失吧!

zk-20170905

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM