簡體   English   中英

為什么我的 ajax 調用沒有從 controller 返回我的數據?

[英]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);


        }
    });
}

這是我的 controller:


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

正如您在下面看到的,我有 38 條記錄,但我無法在我的 js 上接收到它,即使我的控制台上沒有顯示console.log('Data Success') 正如你在這里看到的,我有記錄在此處輸入圖像描述

您需要從Controller方法返回JSON 您可以將方法更改為:

    [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)
    }
});

在與 OP 討論並查看代碼后,發現問題的發生是因為form提交正在發生,導致頁面重新加載兩次。 刪除表單事件並在以下位置添加點擊事件后:

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

數據似乎如期而至。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM