MVC jQuery / AJAX Как отправить массив на контроллер

#jquery #ajax #model-view-controller

#jquery #ajax #модель-представление-контроллер

Вопрос:

Я пытаюсь отправить массив из моего представления на контроллер с помощью Jquery / Ajax. У меня есть таблица со списком назначенных сотрудников и другая таблица для доступных сотрудников.

Когда пользователь нажимает на кнопку в таблице доступных сотрудников, он добавляет ее в мой массив newEmpArray и окрашивает строку в зеленый цвет. Это работает.

Но я не знаю, как отправить его на контроллер и проанализировать его для использования.

Любая помощь будет с благодарностью!

ПРОСМОТР КОДА:

 <script>

    $(document).ready(function () {
        console.log("ready!");

        var newEmpArray = [];

        $(".AddEmp").on("click", function () {

            $(this).parents("tr").css("background-color", "green");
            var empID = parseInt($(this).parent().siblings().first().text());
            newEmpArray.push(empID);
            console.log(empID);

        });

        $("#ShowEmp").on("click", function () {

            jQuery.each(newEmpArray, function (index, id) {
                console.log("ID: "   newEmpArray[index]);
            });

        });

        $("form#frm").on("submit", (e) => {
            e.preventDefault();

            let obj = {
                id: newEmpArray
            };

            $.ajax({

                url: "@Url.Action("AddEmployee")",
                method: "GET",
                data: { 
                    data: JSON.stringify(obj)
                }


            });


        });
    });



</script>
 

КОД КОНТРОЛЛЕРА:

 public ActionResult AddEmployee(string data)
        {
            JObject parsedData = JObject.Parse(data);

            char[] empIDS = parsedData["id"].ToString().ToArray();

            return RedirectToAction("ViewEmployees");
        }
 

Ответ №1:

У меня это работает.

Просмотр кода:

 $("form#frm").on("submit", (e) => {
            e.preventDefault();

            $.ajax({

                url: "@Url.Action("AddEmployee")",
                method: "POST",
                traditional: true,
                data: { 'ids': newEmpArray }
                    
            });


        });
 

Код контроллера:

 public ActionResult AddEmployee(int[] ids)
        {
            int[] empArray = (ids);

            

            return RedirectToAction("ViewEmployees");
        }