Попытка добавить запись через AJAX с использованием ядра MVC asp.net; модель пуста при передаче через jQuery - PullRequest
0 голосов
/ 25 января 2019

Я уверен, что я пропускаю что-то очевидное здесь, но вот проблема. У меня есть функция «Добавить комментарий», которую я хотел бы обрабатывать асинхронно, которая требует (для простоты) двух свойств: PostId и CommentText.

В контроллере настроен следующий обработчик:

[HttpPost]
public IActionResult AddComment(AddCommentModel acm) {

                //fun stuff goes here

                return PartialView("CommentList",scl);
}

И мой вызов jQuery выглядит так:

$ ( "# btnPostComment"). Нажмите ( function () {

                var comment = $("#userComment").val();
                var id = $("#postId").val();



                $.ajax({
                    url: "/Post/AddComment",
                    type: "post",
                    data: JSON.stringify({ acm: { Comment: comment, PostId: id } }),
                    contentType: "application/json; charset=utf-8",
                    success: function (result) {
                        $("#partial").html(result);
                    },
                    error: function (xhRequest, ErrorText, thrownError) {
                        alert("Failed to process promotion correctly, please try again");
                        console.log('xhRequest: ' + xhRequest + "\n");
                        console.log('ErrorText: ' + ErrorText + "\n");
                        console.log('thrownError: ' + thrownError + "\n");
                    }
                });
            }
        );

Какую очевидную и смущающую вещь я упускаю?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Так вот что у меня сработало:

[HttpPost]
        public IActionResult AddComment([FromBody]AddCommentModel acm)
0 голосов
/ 25 января 2019

Пожалуйста, замените ваш код этим и посмотрите.

В контроллере,

[HttpPost]
public IActionResult AddComment(string Comment, int PostId) {

    //fun stuff goes here

    return PartialView("CommentList",scl);
}

При нажатии кнопки

$.ajax({
    url: "/Post/AddComment",
    type: "post",
    data: { Comment: comment, PostId: id },
    success: function (result) {
        $("#partial").html(result);
        },
    error: function (xhRequest, ErrorText, thrownError) {
        alert("Failed to process promotion correctly, please try again");
        console.log('xhRequest: ' + xhRequest + "\n");
        console.log('ErrorText: ' + ErrorText + "\n");
        console.log('thrownError: ' + thrownError + "\n");
        }
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...