为什么我的 ajax 调用没有从控制器返回我的数据?

Why does my ajax call not returning my data from controller?

我很难从客户端获取数据,但是我在 visual studio 上的代码在断点上时它获取了数据,但我无法在我的浏览器上接收它。

这是我的AJAX电话

function GetRecord() {
    var elemEmployee = 55;
    var startDT = $('#searchFilterStartDate').val();
    var endDT = $('#searchFilterEndDate').val();

    $.ajax({
        url: "/Modules/GetDTRRecord",
        type: "GET",
        data: {
            EmployeeID: elemEmployee,
            DateFrom: endDT,
            DateTo: startDT,
        },
        dataType: "json",
        success: function(data) {


            console.log('Data Success ');

             console.log(data);


        }
    });
}

这是我的控制器:


        [HttpGet]
        public List<DTRRecordList.Entity> GetDTRRecord(DTRRecordList.Entity data)
        {
            var entity = new DTRRecordList();
         
            return entity.GetDTR(data);
        }

正如您在下面看到的,我有 38 条记录,但我无法在我的 js 上接收到它,即使 console.log('Data Success') 没有显示在我的控制台上。

您需要 return JSON 从您的 Controller 方法。您可以将方法更改为:

    [HttpGet]
    public JsonResult GetDTRRecord(DTRRecordList.Entity data)
    {
        var entity = new DTRRecordList();
        var getDTR= entity.GetDTR(data);
        return Json(new {dtrData= getDTR});
    }

并且在您的 Ajax 电话中:

$.ajax({
    url: "/Modules/GetDTRRecord",
    type: "GET",
    data: {
        EmployeeID: elemEmployee,
        DateFrom: endDT,
        DateTo: startDT,
    },
    dataType: "json",
    success: function(data) {
         console.log('Data Success ');
         console.log(data.dtrData);
    },
    error: function(error) {
        console.log(error)
    }
});

在与 O.P 讨论并查看代码后,发现问题的发生是因为 form 提交正在发生,导致页面重新加载两次。在删除表单事件并添加点击事件后:

$(document).ready(function () {
    //On Clink "Search Button"
    $("#searchbtn").click(
    function () { GetRecord(); });
});

数据似乎如期而来。