Данные JSON не заполняются в html-таблице с помощью jQuery ajax в asp.net mvc 5 - PullRequest
0 голосов
/ 27 сентября 2018

Я создаю портал ee, где пользователь входит в систему, как только он войдет в систему .. затем он придет на страницу отчета. На странице отчета у него есть возможность выбрать диапазон дат, чтобы получить подробности, я хочу показать диапазон датпоиск данных в html-таблице с использованием jQuery и ajax. Когда я пытаюсь его не заполнить, я пробовал каждый метод, но результат не приходит

Мой контроллер

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

}

}

My cshtml view

<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 () {

        }

    });
});

1 Ответ

0 голосов
/ 28 сентября 2018

Из того, что я понимаю, вы отправляете дату начала и окончания в виде объекта json.json хранит даты в совершенно другой форме, и это уже строка, поэтому преобразование в строку не изменит формат.

Вручную измените формат даты на дд-мм-гггг.Также трудно сказать, действительно ли это ваша проблема, поэтому перед этим я бы порекомендовал отладить код вашего контроллера и посмотреть, в каком формате отображается ваша дата.

В случае неправильного формата даты ваш код будет поврежден, так как вы использовали try catch и вернут сообщение об исключении вместо фактических данных, которые вы ищете, но вы не отображали сообщение в своем представлении.поместите точку останова в этой строке кода:

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

и проверьте, продолжает ли она или прерывается ли ее перехват, в этом случае переменная ex выдаст ошибку msg.проверь в чем ошибка.Если я прав, использование вышеуказанного метода должно решить вашу проблему.

Также я бы рекомендовал изменить ActionResult на JsonResult.Так как вы возвращаете данные Json.

...