麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

jQuery的ajax 方法提交多個對象數組問題 C# traditional $.param

2019-11-17 02:03:59
字體:
來源:轉載
供稿:網友
jQuery的Ajax 方法提交多個對象數組問題 C# traditional $.param

當用$.ajax()向后臺提交參數時,如果參數中數組的話一般在后臺會用List<T>接收;但老是不成功如下面代碼

var arr1=[{ "aa": "1", "bb": "2" }, { "aa": "3", "bb": "4"}];var arr2=[{ "aa": "1", "bb": "2" }, { "aa": "3", "bb": "4"}];function addUser(){        $.ajax({            url:'UserAdd',            data:{list1:arr1,list2:arr2},            type:'post',            success:function(msg){                if(msg=='1'){                    console.log('添加成功');                }else{                    console.log('添加失敗')                }            }        });    }

用Fiddler 監測之后發覺數據變成啦

list1[0][aa]=1&list1[0][bb]=2&list1[1][aa]=3&list1[1][bb]=4&list2[0][aa]=1&list2[0][bb]=2&list2[1][aa]=3&list2[1][bb]=4

C#中能識別的數組應該是這樣的格式

list1[0].aa=1&list1[0].bb=2&list1[1].aa=3&list1[1].bb=4&list2[0].aa=1&list2[0].bb=2&list2[1].aa=3&list2[1].bb=4

在網上查找資料之后了解到ajax post之前會用因為jQuery需要調用jQuery.param序列化參數,我們來看下jquery源碼

//在ajax()方法中,對json類型的數據進行了$.param()處理if ( s.data && s.PRocessData && typeof s.data !== "string" ) {    s.data = jQuery.param( s.data, s.traditional );}//param方法中if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {        // Serialize the form elements        jQuery.each( a, function() {            add( this.name, this.value );        });    } else {        // If traditional, encode the "old" way (the way 1.3.2 or older        // did it), otherwise encode params recursively.        for ( prefix in a ) {            buildParams( prefix, a[ prefix ], traditional, add );        }    }

找到原因之后就好辦啦

首先,traditional為false,我們可以通過設置traditional 為true阻止深度序列化

先寫一個數組轉為對象的方法:

            Array.prototype.serializeObject = function (lName) {                var o = {};                $t = this;                for (var i = 0; i < $t.length; i++) {                    for (var item in $t[i]) {                        o[lName+'[' + i + '].' + item.toString()] = $t[i][item].toString();                    }                }                return o;            };

var arr1=[{ "aa": "1", "bb": "2" }, { "aa": "3", "bb": "4"}];var arr2=[{ "aa": "1", "bb": "2" }, { "aa": "3", "bb": "4"}];function addUser(){        $.ajax({            url:'UserAdd',            data:$.param(arr1.serializeObject("list1"))+"&"+$.param(arr2.serializeObject("list2"),    //手動把數據轉換拼接            type:'post',            traditional:true,    //這里必須設置            success:function(msg){                if(msg=='1'){                    console.log('添加成功');                }else{                    console.log('添加失敗')                }            }        });    }

C#后臺接收代碼

    public class Test    {        public int aa{ get; set; }        public int bb{ get; set; }    }        public ActionResult UserAdd( List<Test> list1, List<Test> list2)        {                        return Json(amm);        }

這樣一來問題就解決啦!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费a级观看 | 国产精品三级a三级三级午夜 | 国产精品亚洲一区二区三区久久 | 中国老女人一级毛片视频 | 国产一级毛片国语版 | 久久国产免费视频 | 一区二区久久精品66国产精品 | 久久午夜免费视频 | 日韩激情一区 | 亚洲影视中文字幕 | 99极品视频 | 日本在线免费观看视频 | 欧美日韩亚洲另类 | 亚洲国产馆 | 亚洲免费网站 | 天天色狠狠干 | 亚洲国产综合在线观看 | 国产精品美女久久久久久网站 | 一本色道久久综合亚洲精品图片 | 国内成人自拍视频 | 法国性hdfreexxxx人妖 | 一级免费黄视频 | 91网站免费观看 | 看免费一级毛片 | 欧美日本在线播放 | 全黄毛片 | 中文字幕激情 | 成人羞羞国产免费游戏 | 黄色网址免费在线播放 | 久久性生活免费视频 | 中文字幕在线观看成人 | 国产精品一区久久久久 | 丰满年轻岳中文字幕一区二区 | 国产亚洲精品久久久久久大师 | 毛片毛片| 久久国产在线观看 | 免费a视频 | 国产精品久久久久影院老司 | 91热久久免费频精品黑人99 | 国产精品1区 | 午夜视频免费播放 |