.net 核心中的 Jquery DataTables 服务器端

Posted

技术标签:

【中文标题】.net 核心中的 Jquery DataTables 服务器端【英文标题】:Jquery DataTables serverside in .net core 【发布时间】:2019-11-23 12:43:37 【问题描述】:

我正在尝试将 jQuery DataTables 服务器端与 .net 核心一起使用。

我正在使用 Ajax 调用我的控制器,并且我使用没有正文的表格强类型化了 View。

我在控制器中获取数据,但似乎无法显示。

我以为是 JSON (https://dotnetcoretutorials.com/2018/05/05/setting-json-serialization-configuration-at-runtime-on-a-net-core-api/),但我查了一下,似乎不是。

我尝试了this tutorial,但仍然找不到我做错了什么。

我只是可以显示在 Ajax 中定义的“sDefaultContent”。

控制器:

[HttpPost]
        public async Task<IActionResult> LoadTransaction()
        
 var requestFormData = Request.Form;

            List<Transactions> data = await ApiClientFactory.Instance.GetInvoice();
            dataList = data;
            try
            
                var listData =  ProcessModuleCollection(data, requestFormData);
                dynamic response = new
                
                    Data = listData,
                    Draw = requestFormData["draw"],
                    RecordsFiltered = data.Count,
                    RecordsTotal = data.Count
                ;

                return  Ok(response);

                //return Json(response);
            

查看:

<div class="row">

        <div>
            <div >

            </div>
            <div class="panel-body">
                <table id="example" class="table table-striped  table-hover responsive">
                    <thead>


                    <tr>
                        <th>
                            @html.DisplayNameFor(model => model.ValueDate)

                        </th>


                        <th>
                            @Html.DisplayNameFor(model => model.StructuredMessage)
                        </th>




</tr>
                    </thead>

                </table>
            </div>
        </div>
    (function($) 
                var generateCustomerTable = $("#example")
                    .dataTable(
                        "processing": true,
                        "serverSide": true,
                        "ajax": 
                            "url": "/Home/LoadTransaction",
                            "method": "POST"
                        ,

                        "columns": [
                             "data": "ValueDate", "name": "ValueDate", "sDefaultContent": '0-0-0000', "autoWidth": true ,
                             "data": "StructuredMessage", "name": "StructuredMessage", "sDefaultContent": '0-0-0000', "autoWidth": true ,

                        ],
                        "ordering": true,
                        "paging": true,
                        "pagingType": "full_numbers",
                        "pageLength": 10

                    );
            )(jQuery);

这是我的控制台的 printScreen console PrintScreen

【问题讨论】:

您是否遇到了一些错误? 请编辑您的问题并从您的控制器发布 JSON 响应。在您的网站上按 F12 并转到网络选项卡,找到对 /Home/LoadTransaction 的请求并复制/粘贴响应。 Gyrocode.com 我对 200 的请求没有问题 【参考方案1】:

我必须承认,社区 *** 已经给出了答案 缺少的东西是在 ajax 调用 datasrc

this post 帮助我了解我想要做什么

阅读更多comments

'dataFilter': function(data)
            var json = jQuery.parseJSON( data );
            json.RecordsTotal = json.total;
            json.RecordsFiltered = json.total;
            json.Data = json.list;


            return JSON.stringify( json ); // return JSON string
        

在这种特殊情况下,关于我从控制器发送的内容

【讨论】:

以上是关于.net 核心中的 Jquery DataTables 服务器端的主要内容,如果未能解决你的问题,请参考以下文章

如何使用html和jquery通过asp.net核心api调用获取数据?

如何在 asp.net 核心中从返回零计数的主体正确映射数组

带有asp .net核心的防伪令牌jquery ajax

Jquery Datatable在asp.net核心中使用异步任务方法获取数据

jQuery Grid css没有加载.net核心2

Jquery 验证单击提交按钮两次 ASP.Net 核心 MVC 项目