zoukankan      html  css  js  c++  java
  • .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();

  • 相关阅读:
    .NETframework的EF框架学习报错之datetime 数据类型
    String...的用法
    存储过程从入门到熟练(c#篇)
    售前如何做好产品演示
    华为演讲培训售前人员重点学习
    report services 报表开发和部署,集成到解决方案中 全解析
    在Asp.net用C#建立动态Excel(外文翻译)
    NET(C#)连接各类数据库集锦
    在SourceForge.net上如何使用TortoiseCVS
    用C#实现在线升级
  • 原文地址:https://www.cnblogs.com/Joker-phj/p/6049709.html
Copyright © 2011-2022 走看看