Как вернуть многомерный массив из контроллера в AJAX успеха? - PullRequest
0 голосов
/ 24 сентября 2019

Я вызываю метод POST контроллера через jquery ajax.Метод контроллера возвращает двухмерный массив в ajax.Я могу успешно получить массив с успехом ajax, но вместо этого он становится одномерным массивом. Вместо этого я хочу, чтобы это был двумерный массив или любой другой размерный массив, который я отправил методом контроллера.

Вот мой метод контроллера:

        [HttpPost]
        public JsonResult MultiDArrayToView(string s)
        {
            string[,] table = new string[2, 2];
            table[0, 0] = "1";
            table[0, 1] = "2";
            table[1,0] = "3";
            table[1,1] = "4";
            var response = new { table = table};
            return Json(response);

        }

Вот мой код для просмотра:

<body>
    <div> 
        <form action="/Home/MultiDArrayToView" method="post" id="form">
            <input name="s" required/>
            <button type="submit">Submit</button>
        </form>
    </div>
    <script src="~/Scripts/jquery-3.3.1.min.js"></script>
    <script>

        $(document).ready(function () {
            $("#form").submit(function (event) {
                event.preventDefault(); //prevent default action
                var post_url = $(this).attr("action"); //get form action url
                var request_method = $(this).attr("method"); //get form GET/POST method
                var form_data = new FormData(this); //Creates new FormData object
                $.ajax({
                    url: post_url,
                    type: request_method,
                    data: form_data,
                    contentType: false,
                    cache: false,
                    processData: false,
                    datatype: "json",
                    success: function (value) {
                        //here I am getting array from controller method in 'value' but as a 1D array instead I want multidimensional array
                        debugger;
                    }
                });


            });
        });
    </script>
</body>

1 Ответ

0 голосов
/ 24 сентября 2019

Вместо использования матрицы: string[,] table = new string[2, 2];

Используйте зубчатый массив string[][] table = new string[2][2];

Это позволит сериализатору json эффективно выполнять преобразование.

...