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();

  • 相关阅读:
    Hash 函数资源链接汇总
    Zookeeper 初体验之——伪分布式安装
    Zookeeper 初体验之——JAVA API 初探
    布隆过滤器(Bloom Filter)详解
    7天学会Maven(第一天——了解 Maven)
    仿中关村在线首页弹出式广告插件(jQuery版)
    介绍几款在线代码编辑器
    兼容浏览 firefox、chrome、ie 的flash(swf) 的代码!
    我的Discuz!X2 、Ucenter 1.6、ASP.NET 应用程序整合经历
    2011年最后一博:仿HAO123的邮箱登录
  • 原文地址:https://www.cnblogs.com/Joker-phj/p/6049709.html
Copyright © 2011-2022 走看看