将aj中的DATA存储到JSON变量以供以后使用

我写了这个控制器:

[HttpGet]
    public JsonResult GetAllCustomer()
    {
        CustomerList customer_list = new CustomerList();
        customer_list.Fill();
        using (DataTable dt = customer_list.Data)
        {
            customer_list = null;
            return Json(Utilities.GetTableRows(dt), JsonRequestBehavior.AllowGet);
        }
    }

我写了这个Ajax JS脚本(这将填充到HTML表):

var tempTable;
$.ajax({
        type: 'GET',
        url: '@Url.Action("GetAllCustomer", "Customer")',
        success: function (data) {
            var table = document.getElementById("tblCustomer");
            $.each(data, function (index, item) {
                var row = table.insertRow(-1);

                var code = row.insertCell(0);
                var Name = row.insertCell(1);
                var CompanyName = row.insertCell(2);
                var PhoneNumer = row.insertCell(3);
                var Active = row.insertCell(4);

                code.innerHTML = item["code"];
                Name.innerHTML = item["customer_name"];
                CompanyName.innerHTML = item["company_name"];
                PhoneNumer.innerHTML = item["contact_number"];
                Active.innerHTML = item["is_active"];
            })
        },
        error: function (req, status, errorObj) {
            alert(errorObj.toString());
        }
    });

如何将$.each(data, function (index, item)存储为TEMPORARY表或(将其存储在变量中作为JSON)供以后使用?

我在AJAX调用上试过这个:

    success: function (data) {
                tempTable = data;
     }

但是tempTable等于undefined; 我将为后来的用户使用tempTable ,例如当用户点击某个按钮时将其发送到控制器。

采纳答案:

存储临时数据有多种选择。

1. InMemory /在$ .each之外的变量中: - 所以你会做这样的事情

var tempTable = [];
$.ajax(/*..*/).success(function(dataA){
  $.each(dataA, function(i, v){tempTable.push(v);})
});

在这种情况下,您将在ajax成功调用后填充tempTable。 所以你想要使用tempTable确保在ajax调用完成后使用它。

2.在Html中: - 您可以使用JSON.stringify(dataA )创建返回对象的json,并将其保存在隐藏元素中。 或者只使用$ .data函数来保存与DOM节点关联的返回数据。 这样,无论何时您想要使用数据,您都必须从HTML DOM中检索它。 看看这里https://api.jquery.com/jquery.data/

3.在Cookies中: - 将数据保存在Cookies中即使在浏览器窗口关闭并重新打开后也可以使用数据。 您必须在应用程序的生命周期内管理数据的过期和结构的任何更改,并且还必须对用户可能已删除cookie的过程进行编码。 将数据保存在cookie中很容易看看这里https://github.com/carhartl/jquery-cookie

4.本地存储: - 一种相对较新的HTML5技术。 您可以在其中将数据保存在浏览器的本地存储中,并且有关管理状态的所有内容都适用于管理本地存储的状态。 看看这里http://www.jstorage.info/

author: parv-sharma

参考更多解答: Storing a DATA from ajax to a JSON variable for later use ,转载请保留出处将aj中的DATA存储到JSON变量以供以后使用及作者信息

Statement: We respect knowledge and authors. Since the content comes from the Internet and is intended for scientific research, any reprinters should retain the author's signature and origin. If you are the author of the content and feel in dispute, please contact email: 1076545519@qq.com. We will find out the situation and deal with it in time. We sincerely thank the author for his hard work.


更多:json