Зачем запрашивать строку после вызова ajax при использовании переключателей с датой? - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь сохранить данные, установив несколько флажков в таблицах данных. Но после ajax вызова в подтверждении нажмите на ajax функция не удалась. Он показывает строку запроса вместе с контроллером / action.Like следующим

https://localhost:44307/Leaves/Approval?leaveApproveDataTable_length=10&id%5B%5D=11

Это мой js

$(document).on('click', '.btn-Approve', function (e) {
            var form = this;            

            var rows = $(table.rows({
                selected: true
            }).$('input[type="checkbox"]').map(function () {
                return $(this).prop("checked") ? $(this).closest('tr').attr('leaveid') : null;
            }));                      

            rows_selected = [];
            $.each(rows, function (index, rowId) {
                console.log(rowId)
                // Create a hidden element 
                rows_selected.push(rowId);
                $(form).append(
                    $('<input>')
                        .attr('type', 'hidden')
                        .attr('name', 'id[]')
                        .val(rowId)
                );
            });

            var remarks = $('#Remarks').val();

            console.log($(this).closest('tr').attr('leaveid'));

            $.ajax({
                url: '/Leaves/LeaveApproval',
                data: { approveId: rows_selected, remarks: remarks },
                type: 'POST',
                processData: true,
                dataType: 'JSON',
                success: function (result) {
                    console.log(result);
                    debugger;
                    if (result) {
                        window.location.href = "/Leaves/Approval";
                    }
                    else {                       
                        return result;
                    }
                },
                error: function () {                   
                }                
            });

        });

Это мой контроллер

public async Task<IActionResult> LeaveApproval(List<int> approveId, string remarks)
        {


                foreach (int id in approveId)
                {
                    var leave = await _context.Leaves.FindAsync(id);
                    if (leave == null)
                    {
                        return Json(new { success = false });
                    }
                    leave.Status = "Approved";
                    leave.Remarks = remarks;
                    leave.ApprovedDate = DateTime.Now;
                    _context.Update(leave);
                    await _context.SaveChangesAsync();


            }
                 return Json(new { success = true }); 
        }

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 19 марта 2020

При возврате из контроллера замените: return Json (new {success = true}); эта строка с возвратом Json (new {success = true}, JsonRequestBehavior.AllowGet);

...