Nizar Belhiba Ответов: 1

Ошибка Asp.net основной запрос HTTP 415 передает массив в контроллер


Привет, я пытаюсь передать массив объектов из моего javascript в моем представлении на мой контроллер.
После некоторых проблем мне удалось заставить его работать, по крайней мере до тех пор, пока мой метод в контроллере не будет вызван и мой список " там " будет правильно заполнен.

но в то же время моя страница не отображается, и я получаю ошибку HTTP 415.

Я читал, что мне нужно использовать [FromFrom] вместо [fromBody]
но тогда результат моих canvasFields пуст (list Count = 0)

Но с помощью [FromBody], когда я устанавливаю точку останова в своем контроллере canvasFields правильно заполняется только то, что моя страница не отображается с ошибкой Http 415

Я действительно понятия не имею что делать

Что я уже пробовал:

$('#btnClick').click(function (e) {
            $.ajax({
                url: "@Url.Action("SaveTemplate")",
                type: 'post',
                contentType: 'application/json; charset=utf-8',
                data: JSON.stringify(canvasFields),
                success: function () {
                    alert("yes");
                },
                error: function (errMsg) {
                    alert(errMsg);
                }
            })
        });


[HttpPost]
       
        public ActionResult SaveTemplate([FromBody] List<CanvasField> canvasFields)
        {
            return Json(new
            {
                resut = "OK"
            });
        }

MadMyche

Так чем же отличается эта "решенная" проблема?
https://www.codeproject.com/Questions/5265193/Asp-net-core-passing-an-array-of-objects-to-contro

Nizar Belhiba

Да, вы правы. Но, честно говоря, как всегда была точка останова, я никогда не замечал, что сайт не появляется. Я всегда просто проверяю, заполняется ли мой список в моем контроллере так, как я хотел, не продолжая выше этой точки.
А тем временем у меня была еще одна проблема, поэтому, когда я вернулся и удалил точку останова, я только что заметил эту проблему

MadMyche

Итак, заполнен ли список в вашем контроллере?

Nizar Belhiba

Да. И все прекрасно. Просто вид не показывается. И я получаю сообщение эта функция не может быть загружена ошибка Http 415

1 Ответов

Рейтинг:
12

Nizar Belhiba

Ладно я нашел решение
Проблема заключалась в том что правильный маршрут к моему виду отсутствовал добавив его я решил эту проблему:

[Route("Template/SaveTemplate")]
       public IActionResult SaveTemplate()
       {
           return View();
       }