JQuery: Uncaught TypeError: незаконный вызов - PullRequest
0 голосов
/ 27 ноября 2018

У меня проблема, когда я пытаюсь отправить свою форму в действие на моем коде на стороне сервера, который выглядит следующим образом:

   [ValidateAntiForgeryToken]
   public async Task<ActionResult> DoRegister(UserRegistrationViewModel model)
   {
     // Some code here
   }

Форма также содержит Html.AntiForgeryToken (), так что это не 'это проблема.Код jQuery выглядит следующим образом:

 $('form').submit(function (event) {
        event.preventDefault();

        if ($(this).valid()) {

            StartLoading();
            var formdata = new FormData($(this).get(0));
            $.post("/User/DoRegister",formdata, function (data) {
                $(".registerLoader").fadeOut("fast");
                if (data.statusCode == 200) {
                    window.location.href = "/Plans";
                }
                else if (data.statusCode == 100) {
                    $("body").html(data.View);
                }
            });
        }
        return false;
    });

Когда я пытаюсь отправить форму, я получаю следующую ошибку:

jquery: Uncaught TypeError: Illegal invocation 

Что я здесь не так делаю?Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 27 ноября 2018

Проблема в том, что вы передаете элемент HTML вместо его значения.Вы можете использовать serializeArray

var formdata = $("form").serializeArray();

. Метод .serializeArray () создает массив объектов JavaScript, готовый для кодирования в виде строки JSON.Он работает с коллекцией форм jQuery и / или элементов управления форм.

...