業務需求:根據前臺界面的參數,動態綁定對象json
<param name="colNames">屬性名拼接字符串</param>
<param name="data">數據json字符串(前臺數組形式)</param>數組
public ActionResult BindObject(string colNames,string data)
{ app
var jsonData = JsonConvert.DeserializeObject<dynamic>(data);
if (colNames == null)
{
return RedirectToAction("Index", new { area = "Assessment" });
}
string[] colNamesArray = colNames.Split(',');post
List<ExpandoObject> list = new List<ExpandoObject>();lua
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);
}orm
return View();對象
}字符串
-----------------------------------------------------------------------------------------input
前臺js代碼:string
//收集列頭(屬性名)數據
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();