將前台JS數組序列化后提交,后台反序列化對象


  • //前台js
    function inputAll(thiss) {
    var _entryArr = [];
    var $trArr = $("#FirstTable tr:gt(0)");
    if ($trArr.length == 0) { return; }
    for (var i = 0; i < $trArr.length; i++) {
    var $thirdTd = $($trArr[i]).find("td:eq(2)");
    var entryObjectID = $thirdTd.find(":hidden:eq(0)").val();
    var entryData = $thirdTd.find(":text:eq(0)").val();
    if ($.trim(entryData).length == 0) { alert('請輸入第' + (i + 1) + '行要錄入的數據!'); return; }
    var _entry = {};
    _entry.EntryObjectID = entryObjectID;
    _entry.EntryData = entryData;
    _entryArr.push(_entry);
    }
    var _data = {};
    _data.Action = 'InputAllData';
    _data.EntryData_Arr = Serialize(_entryArr);
    _data.EntryTime = $("#txtFirstStartTime").val();
    $.ajax({
    type: "get",
    cache: false,
    url: "OtherData.aspx",
    data: _data,
    beforeSend: function (XMLHttpRequest) {
    showLoading('正在錄入,請稍候...');
    },
    success: function (data) {
    try {
    hideLoading();
    if (Number(data) >= 1) {
    alert("批量錄入成功!");
    } else {
    alert("批量錄入失敗!");
    }
    } catch (ex) {
    alert("批量錄入失敗!");
    }
    },
    error: function () {
    hideLoading();
    }
    });
    }

  • //后台:
  • string EntryData = Request["EntryData_Arr"]; 
    //[{EntryObjectID:"7",EntryData:"121.222"},{EntryObjectID:"8",EntryData:"115.3"},{EntryObjectID:"9",EntryData:"166.8"},{EntryObjectID:"1",EntryData:"0"}]
    tempEntryModel[] EntryArr = (tempEntryModel[])Newtonsoft.Json.JsonConvert.DeserializeObject(EntryData, typeof(tempEntryModel[]));

    1. //臨時model類

    2. private class tempEntryModel
      {
            //{EntryObjectID:"7",EntryData:"121.222"}
           public int EntryObjectID { get; set; }
           public double EntryData { get; set; }
      }

  • //js序列化方法:
  • function Serialize(obj) {
         switch (obj.constructor) {
            case Object:
            var str = "{";
            for (var o in obj) {
                str += o + ":" + Serialize(obj[o]) + ",";
            }
            if (str.substr(str.length - 1) == ",")
                str = str.substr(0, str.length - 1);
            return str + "}";
            break;
            case Array:
            var str = "[";
            for (var o in obj) {
                str += Serialize(obj[o]) + ",";
            }
            if (str.substr(str.length - 1) == ",")
                str = str.substr(0, str.length - 1);
            return str + "]";
            break;
            case Boolean:
            return "\"" + obj.toString() + "\"";
            break;
            case Date:
            return "\"" + obj.toString() + "\"";
            break;
            case Function:
            break;
            case Number:
            return "\"" + obj.toString() + "\"";
            break;
            case String:
            return "\"" + obj.toString() + "\"";
            break;
        }
    }


  • 免責聲明!

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



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