не может отображать оповещение после сообщения ajax в MVC - PullRequest
0 голосов
/ 28 ноября 2018

В моем приложении asp.net mvc я хочу отобразить предупреждение после того, как клиент зарегистрирует себя, мое приложение работает правильно, это единственное, что осталось сделать, я уверен, что я пропустил что-то глупое

    public ActionResult Register(Client client)
    {
           ClientDAL objClientDAL = new ClientDAL();

           objClientDAL.Insert(client);

           return Json(new { msg = "Thank you!" }, JsonRequestBehavior.AllowGet);
    } 

и, на мой взгляд,

                $("#btnSalvar").click(function () {
                    $.ajax(
                        {
                            type: "POST",                              
                            url: "/Home/Register",
                            contentType: 'application/json; charset=utf-8',                              
                            data:
                                {
                                    ID: $('#txtMatricula').val(),
                                    Name: $('#txtNome').val(),
                                    Age: $('#txtIdade').val(),
                                    StateID: $('#ddlEstados').val(),
                                    CityID: $('#ddlCidades').val(),
                                    Gender: $('#Fumante').val()
                                },

                            success: function (data)
                            {
                                alert(data.msg);                                       
                            },

                            error: function (data)
                            {
                                alert(data.msg); 
                            },

                        });
                });

, как я уже сказал, все работает просто отлично, но я не могу отобразить сообщение в форме оповещения, когда я пробую это, оно выглядит так...

{"msg": "Спасибо!"} На пустой странице, как будто это просто игнорирует мою функцию успеха, я новичок в asp.net mvc.

(Кстати, вы, ребята, могли заметить, что некоторые слова отличаются от URL или кнопки, потому что английский не является моим родным языком, поэтому я просто перевел важные части, чтобы вы, ребята, могли лучше понять, что происходит).

1 Ответ

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

когда я это пробую, это выглядит так ... {"msg": "Спасибо!"} На пустой странице

Это означает, что ваш код на стороне клиентасделать так, чтобы код Ajax не выполнялся.

Это обычно происходит, когда у вас есть кнопка внутри тега form и вы подключаете некоторый код Ajax для обработки нажатия кнопки / отправки формы, которая должна быть ajaxified, но забылачтобы остановить / предотвратить нормальное поведение при отправке формы.

Для этого можно использовать метод preventDefault.

Я также вижу несколько других проблем сВаш код

Ваш обработчик событий click записан внутри другой функции.В этом нет смысла.Кто вызывает этот метод?Если никто не вызывает этот метод, ваш обработчик событий click не будет зарегистрирован.Лучше всего подключить обработчик события click к событию document ready .

Также я вижу, что вы указываете опцию contentType в вызове ajax.Это отправит значение заголовка Content-Type как application/json, и механизм связывания попытается прочитать данные из тела запроса.Но вы отправляете объект JavaScript как свойство data.Удалите contentType из своего кода или используйте метод JSON.stringify, чтобы создать строковую версию JSON вашего объекта, и отправьте ее как свойство data параметра $.ajax.См. этот пост для примера кода.Это полезно при отправке сложного объекта.

Это должно работать

$(function () {

    $("#btnSalvar").click(function (e) {
        e.preventDefault();
        $.ajax(
            {
                type: "POST",
                url: "/Home/Register",
                data:
                    {
                        Id: 3,
                        Title: "Scott",
                        Age:2,
                    },

                success: function (data) {
                    alert(data.msg);
                },

                error: function (jqXHR, status, error) {
                    alert(error);
                    console.log(status)
                },

            });
    });

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...