Вставка данных в базу данных с помощью Ajax - ASP.NET MVC - PullRequest
0 голосов
/ 08 июня 2018

У меня есть страница с формой, и когда пользователь отправит форму, произойдут две вещи
1) Он должен отправить электронное письмо (эта часть работает нормально) и
2) Он также должен вставить данные / запись вБаза данных, но эта часть не работает, и она не может вставить данные в базу данных.
3) Как я понимаю, и контроллер, и AJAX работают до тех пор, пока не придет отправка электронной почты.уже нет.

Вещи, которые я пробовал для части 2, сначала я отладил свой контроллер, и я вижу, что модель содержит данные.
Я также проверяю консоль в браузере, и не было ошибок

Я что-то пропустил в контроллере или в AJAX ?!Может кто-то указать мне верное направление ?!

Контроллер:

        [HttpPost]
        public JsonResult ProcessRequestRMA(string kundenavn, string ordrenummer , string send)
        {


            if (send == "send")
            {
                var SubjectOne = "RMAAJAX";
                var SendToPrint = "someemal@email.com";
                var errorMessage = "";


            try
            {
                // Initialize WebMail helper
                WebMail.SmtpServer = "smtp.";
                WebMail.SmtpPort = 25;
                WebMail.UserName = "someemal@email.com";
                WebMail.Password = "";
                WebMail.From = "someemal@email.com";
                WebMail.EnableSsl = true;
                WebMail.SmtpUseDefaultCredentials = false;


                // Send email
                WebMail.Send(to: SendToPrint,
                    subject: SubjectOne,
                    body: "Kundenavn" + kundenavn + "<br>" + "ordernummer" + ordrenummer + "<br>"

                    );

            }


            catch (Exception ex)
            {

                errorMessage = ex.Message;

           }



            if (ModelState.IsValid)
            {
                db.RMA_History.Add(new RMA_History
                {

                    Kundenavn = kundenavn,
                    Ordrenummer = ordrenummer


                });
                db.SaveChanges();
            }

      }

            return Json(new RMA_History {Kundenavn=kundenavn , Ordrenummer=ordrenummer }, JsonRequestBehavior.AllowGet);
}


AJAX:

<form id="RMAForm">
<input name="Ordrenummer" id="Ordrenummer" type="text" >

<input name="Kundenavn" id="Kundenavn" type="text" >

<button id="btn" type="submit">Send</button>
</form>

    <script>
        $(document).ready(function () {

            $("#btn").click(function (e) {


                e.preventDefault();

                var kundenavn = $("#Kundenavn").val();
                var ordrenummer = $("#Ordrenummer").val();


                $.ajax({
                    type: 'POST',
                    url: "/Account/ProcessRequestRMA",
                    dataType: 'json',

                    data: {
                        send:"send",
                        kundenavn: kundenavn,
                        ordrenummer: ordrenummer,

                    },

                    success: function (status) {


                        if (!$.trim(status)) {
                            alert("What follows is blank: ");
                        }

                        else {
                            status.Kundenavn = kundenavn;
                            status.Ordrenummer = ordrenummer;
                        }

                    },

                    error: function () {
                        console.log('something went wrong - debug it!');
                    }
                });


            });


        });
    </script>

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Прежде всего вы должны создать новый класс для возврата json. Вы не должны возвращать объект сущности в запрос ajax.

Например:

public class RmaHistoryJson
{
    public string Kundenavn { get; set; }
    public string Ordrenummer { get; set; }
}

Так что же такоеподробности ошибки для процесса вставки базы данных?

0 голосов
/ 08 июня 2018

посмотрите на этот пример:

$.ajax({
        url: "url",
        type : "POST",
        async: false,
        contentType: "application/json",
        //dataType: "json",
        data : { firstDate : monday,
                secondDate : lastday}
                    //student_name : $('#id_student_name').val()
    }).then(function(data) {

        var obj = JSON.parse(data);
        for (var a = 0; a < obj.results.length; a++) {
            res[a] = obj.results[a];
            dates.push(obj.results[a].DATESTART);
        }
        console.log(res);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...