js 和C# ashx之間數組參數傳遞問題


js在進行ajax提交時,如果提交的參數是數組,js無法直接進行提交,及時提交上去,解析也是比較麻煩

ajax在提交數組時,需要設置參數:

 traditional: true,  //參數作為數組傳遞時

另外,數組需要進行json.stringy變成字符串進行提交
完整的格式:
$.ajax({
        type: "post",
        url: "../Aspose/AsposeHelper.ashx",
        data: { "action": "exportQuery", "queryResult": JSON.stringify( datagridSource )},
        traditional: true,  //參數作為數組傳遞時
        dataType:"json",
        error: function (ex) {
            console.log("導出查詢結果出錯:" + ex);
        },
        success: function (data) {
            if (data != null) {
                debugger;
                 window.open(data["responseObject"]);
            }
        }
    });

js提交數組后,C#在ashx進行數據接收和處理時,
【1】對數組參數進行重組
具體的重組過程:
1.建立一個與json數組中對象字段一致的類
2.使用序列化,將js提交上來的數組json字符串反序列化為對象
 /// <summary>
        /// Json格式數據轉換為List<T>
        /// </summary>
        public static List<T> JSONStringToList<T>(string JsonStr)
        {
            JavaScriptSerializer Serializer = new JavaScriptSerializer();
            //設置轉化JSON格式時字段長度
            List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
            return objs;
        }
3.按照處理C#中的數組或者list進行處理


免責聲明!

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



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