簡體   English   中英

在ASP.NET MVC 5中使用jQuery AJAX在HTML表中不填充Json數據

[英]Json data is not populat in html table using jQuery ajax in asp.net mvc 5

我正在創建一個ee門戶,用戶登錄后即可登錄。然后,他將進入報告頁面。在報告頁面中,他可以選擇日期范圍以獲取詳細信息,我想顯示日期范圍搜索數據使用jQuery和Ajax的html表,當我嘗試不填充時,我嘗試了每種方法,但結果未到

我的控制器

[HttpGet]
    public ActionResult HwportalGetData(DateTime startDate, DateTime endDate)
    {
        SCAN_HW_PortalEntities db = new SCAN_HW_PortalEntities();



        try
        {

            string _startDate = startDate.ToString("dd-MMM-yyyy");
            string _endDate = endDate.AddDays(1).ToString("dd-MMM-yyyy");




            var result = db.Scan_HW_Terminal.Where(x => x.CreatDate >= startDate && x.CreatDate <= endDate).OrderBy(x => x.EmpID).ToList();

            if (result.ToList().Count > 0)
            {
                TempData["total"] = result.Count.ToString();
                return Json(result, JsonRequestBehavior.AllowGet);
            }
            else
                return Json("Invalid");
        }
        catch (Exception ex)
        {
            return Json(ex);
        }

        // return Json(db.Scan_HW_Terminal.ToList());
    }

}

}

我的cshtml視圖

<div class="grid-container" id="DataShowGride">
                    <Table Class="table table-bordered" id="myTable">
                        <thead>
                            <tr>
                                <th>Employee ID</th>
                                <th>Create Date</th>
                                <th>City Name</th>
                                <th>Device Type</th>
                                <th>Status</th>
                                <th>Team Leader Name</th>
                                <th>Serial Number</th>
                            </tr>
                        </thead>

                    </Table>
                </div>

<script type="text/javascript">

$('#btnShow').click(function (e) {
    debugger;
    var mFromDate = $("#FromDate").val();
    var mToDate1 = $("#ToDate1").val();
    //$('#loader').show();
    $.ajax({
        url: '@Url.Action("HwportalGetData", "Home")',
        type: "GET",
        data: {startDate: mFromDate, endDate: mToDate1 },
        //startDate: mFromDate, endDate: mToDate1
        dataType: 'json',
        success: function (data) {
            var tr;
            //Append each row to html table  
            for (var i = 0; i < json.length; i++) {
                tr = $('<tr/>');
                tr.append("<td>" + json[i].EmpID + "</td>");
                tr.append("<td>" + json[i].CreatDate + "</td>");
                tr.append("<td>" + json[i].City + "</td>");
                tr.append("<td>" + json[i].DeviceType + "</td>");
                tr.append("<td>" + json[i].DeviceStatus + "</td>");
                tr.append("<td>" + json[i].TeamLeader + "</td>");
                tr.append("<td>" + json[i].TerminalSlno + "</td>");
                $('#myTable').append(tr);

            }
        },
        error: function () {

        }

    });
});

據我了解,您正在以json對象的形式發送開始和結束日期。 json以非常不同的形式存儲日期,並且它已經是字符串,因此轉換為字符串不會更改格式。

手動將日期格式更改為dd-mm-yyyy。 另外,很難分辨這是否是您的實際問題,因此在此之前,我建議您調試控制器代碼並查看顯示的日期格式。

如果您的日期格式不正確,則由於您使用了try catch,因此代碼將中斷,並且將返回異常消息,而不是您要查找的實際數據,但您並未在視圖中顯示msg。 在此代碼行上放置一個斷點:

     var result = db.Scan_HW_Terminal.Where(x => x.CreatDate >= startDate && x.CreatDate <= endDate).OrderBy(x => x.EmpID).ToList();

並檢查它是否繼續捕獲或中斷,在這種情況下,變量ex會保留錯誤msg。 檢查錯誤是什么。 如果我正確使用上述方法應該可以解決您的問題。

我也建議將ActionResult更改為JsonResult。 由於您正在返回Json數據。

暫無
暫無

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

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