繁体   English   中英

无法将数据绑定到 ASP.NET MVC 中的数据表

[英]Not able to bind data to datatable in ASP.NET MVC

下面是我的 ASP.NET MVC 项目中的代码。 我正在使用数据表来创建一个表。 我正在从 Web API 获取数据。 正在返回数据,但在绑定时出现此处显示的错误。 我尝试删除很多带有按钮的代码。 现在我只有简单地绑定它的代码。

数据表警告:表 ID=患者 - ajax 错误。 有关此错误的更多信息,请参阅http://datatables.net/tn/7

jQuery 代码:

$(document).ready(function () {
            debugger;
            var table = $("#patients").DataTable({
                
                ajax: {
                    
                    url: "/api/patients",
                    dataSrc: ""
                },
                columns: [
                    
                    {
                        data: "First_Name"
                    },
                    {
                        data: "phoneNumber",
                        render: function (data) {
                            debugger;
                            return data.toString().replace(
                              /(\d\d\d)(\d\d\d)(\d\d\d\d)/g, '$1-$2-$3');
                        }
                    },
                    {
                        data: "Address"
                    },
]
            });
 });

来自控制器的 API 代码:

public IHttpActionResult GetPatients()
{
    var patientDto = getdata();
    return Ok(patientDto);
}

public IEnumerable<Patient_Response> getdata()
{
    IEnumerable<Patient_Response> students = null;

    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", "Bearer 0f6af107-6ad2-4665-ad24-f09402d50082");
        client.BaseAddress = new Uri("http://localhost:6600/api/");

        // HTTP GET
        var responseTask = client.GetAsync("patients");
        responseTask.Wait();

        var result = responseTask.Result;

        if (result.IsSuccessStatusCode)
        {
            var readTask = result.Content.ReadAsAsync<IList<Patient_Response>>();
            readTask.Wait();

            students = readTask.Result;
        }
        else //web api sent error response 
        {
            // log response status here..
            students = Enumerable.Empty<Patient_Response>();

            ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
        }
    }

    return students;
}

怎么了? 我无法弄清楚。

您是否阅读过文档: https : //datatables.net/manual/tech-notes/7

当 jQuery 陷入其错误回调处理程序(此回调内置于 DataTables 中)时,就会发生这种情况,这通常会在服务器以 2xx HTTP 状态代码以外的任何内容进行响应时发生。

这意味着你的调用转到控制器,未能带来任何数据。

您可以使用以下代码查看出错的地方:

$.fn.dataTable.ext.errMode = 'none';
 
$('#patients')
    .on( 'error.dt', function ( e, settings, techNote, message ) {
        alert( 'An error has been reported by DataTables: ', message );
    } )
    .DataTable();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM