Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# datatables asp.net核心razor页面IActionResult新JsonResult_C#_Asp.net_Razor_Datatables - Fatal编程技术网

C# datatables asp.net核心razor页面IActionResult新JsonResult

C# datatables asp.net核心razor页面IActionResult新JsonResult,c#,asp.net,razor,datatables,C#,Asp.net,Razor,Datatables,如何在选择更改时设置表内容我正在谈论的是datatables.js库,通过jquery ajax post。如何返回新的JsonResult并使用处理程序的结果重新绘制表的内容?谢谢以下是我使用的流程: 总结: 在顶级作用域中声明js变量 在document.ready函数中,将数据表实例化为全局js变量 在ajax post上,通过存储的对象清除表,然后迭代结果并添加行 更深入: //declare this high in scope so you can access it in your

如何在选择更改时设置表内容我正在谈论的是datatables.js库,通过jquery ajax post。如何返回新的JsonResult并使用处理程序的结果重新绘制表的内容?谢谢

以下是我使用的流程: 总结:

  • 在顶级作用域中声明js变量

  • 在document.ready函数中,将数据表实例化为全局js变量

  • 在ajax post上,通过存储的对象清除表,然后迭代结果并添加行

  • 更深入:

    //declare this high in scope so you can access it in your functions
    var dt;
    
    $(document).ready(function () {
       //Create the datatable and assign it to variable for later reference
       dt = $('#MyTable').DataTable({dom: 'Bfrtip'});
    });
    
    $("#SomeBtn").click(function () {
      //clear current table rows
      dt.clear().draw();
      $.ajax({
             url: whatever Path,
             data: whatever Data,
                dataType: "json",
                type: "POST",
                cache: false,
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    $.each(data, function (i, n) {
                        //Iterate results and add each to the table. This is why we stored the datatable in a highr scope so we can operate it on it here :)
                        dt.row.add([n.prop1, n.prop2, n.prop3]).node().id = n.propID + '_Row';
                        dt.draw(false);
    
                    });
                },
                error: function (response) {
                },
                failure: function (response) {
    
                }
            });
     });
    

    如您所见,通过在对象中存储数据表,您可以在以后的函数中根据其api对其进行控制。您好,如果您为您已经尝试过的内容提供了一些代码,则更有可能得到答案。当用户看不到您正在使用的代码时,他们很难回答问题。请编辑以显示您正在使用的代码,并解释您已经尝试过的内容:)我理解这是一个概念性问题,但提供有关您尝试过的内容的信息和示例代码,即使是错误的,也会为人们在尝试回答您的问题时提供一个起点。请参阅。另外,我不是想回答你的问题,而是给你一些建议,这样你就可以得到一个很好的答案。祝你好运datatable使用的正确json格式是什么?请给出简单的json示例?另外,到目前为止,你的答案帮助很大。没有“正确”的格式。也就是说,您可以通过在Json结果中返回简单的视图模型来简化自己。所以,在服务器端,当您返回JsonResult时,它只是将您的ViewModel/View转换为json,然后在客户端,它将您的json自动转换为js对象。在我的示例中,您看到的是一个返回类型的列表,而myClass的prop1、prop2、prop3属性为字符串,propID属性为int。老实说,最简单的方法是对ajax结果执行console.log(data)操作,打开开发工具,查看创建的js对象。如果返回的是单个而不是列表,则可以通过data.prop1和data.prop2轻松访问数据。不过js对象的诀窍是,你需要处理空值或日期时间格式之类的事情,因为它不适合你。非常感谢。在你的帮助下,我已经解决了。下面是一个简单的响应示例:返回新的JsonResult(“[\\\”“Tiger Nixon\”、“System Architect\”、“Edinburgh\”、“5421\”、“2011/04/25\”、“$320800\”]、[\”“Garrett Winters\”、“Accountant\”、“Tokyo\”、“8422\”、“2011/07/25\”、“$170750\”);