.Net mvc 根据前台参数动态绑定对象
业务需求:根据前台界面的参数,动态绑定对象
<param name="colNames">属性名拼接字符串</param>
<param name="data">数据json字符串(前台数组形式)</param>
public ActionResult BindObject(string colNames,string data)
        {           
var jsonData = JsonConvert.DeserializeObject<dynamic>(data);
            if (colNames == null)
            {
                return RedirectToAction("Index", new { area = "Assessment" });
            }
            string[] colNamesArray = colNames.Split(',');
List<ExpandoObject> list = new List<ExpandoObject>();
            foreach (var item in jsonData)
            {                
                dynamic expandoObject = new ExpandoObject();
                foreach (var colName in colNamesArray)
                {
                    (expandoObject as ICollection<KeyValuePair<string, object>>).Add(new KeyValuePair<string, object>(colName, item[colName]));
                }
                list.Add(expandoObject);
            }
return View();
}
-----------------------------------------------------------------------------------------
前台js代码:
//收集列头(属性名)数据
        var array = new Array();
        var table = $('#tb-data')[0];
        for (var i = 0; i < 1; i++) {
            for (var j = 0; j < table.rows[0].cells.length; j++) {
                var colName = table.rows[0].cells[j].innerText;
                array.push(colName);
            }
        }
        //收集数据
        var dataArray = new Array();
        for (var i = 1; i < table.rows.length; i++) {
            var value = {};
            for (var j = 0; j < table.rows[i].cells.length; j++) {
                if (table.rows[i].cells[j].innerText == undefined || table.rows[i].cells[j].innerText == "") {
                    value[array[j]] = "";
                } else {
                    value[array[j]] = table.rows[i].cells[j].innerText;
                }
            }
            dataArray.push(value);
        }        
        var postUrl = '/Accounting/AllEvaluate/Export';//提交地址  
        var postData = JSON.stringify(dataArray);//第一个数据          
        var ExportForm = document.createElement("FORM");
        document.body.appendChild(ExportForm);
        ExportForm.method = "POST";
        var newElement = document.createElement("input");
        newElement.setAttribute("name", "data");
        newElement.setAttribute("type", "hidden");
        ExportForm.appendChild(newElement);
        var newElement2 = document.createElement("input");
        newElement2.setAttribute("name", "colNames");
        newElement2.setAttribute("type", "hidden");
        ExportForm.appendChild(newElement2);      
        newElement2.value = array;
        newElement.value = postData;
        ExportForm.action = postUrl;
        ExportForm.submit();
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号