使用Ajax将数据插入数据库 - ASP.NET MVC

时间:2018-06-08 09:27:31

标签: jquery ajax asp.net-mvc database

我有一个表单页面,当用户提交表单时,会发生两件事情 1)它应该发送一封电子邮件(这部分工作正常)和
2)它还应该将数据/记录插入数据库,但这部分不起作用,不能将数据插入数据库 3)据我所知,Controller& AJAX一直在努力发送电子邮件。不再。

  

我为第2部分尝试的东西,首先我调试了我的   控制器,我可以看到模型包含数据。
我也检查   浏览器中的控制台没有错误

我是否错过了Controller或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 :(得分:0)

看看这个例子:

class MySwitchListTilesContainer extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.grey[800],
      body: ListView(
        children: List.generate(20, (i)=>MySwitchListTile(

        )),
      ),
    );
  }
}
class MySwitchListTile extends StatefulWidget {

  @override
  _MySwitchListTileState createState() => new _MySwitchListTileState();
}

class _MySwitchListTileState extends State<MySwitchListTile> {
  bool _v = false;
  @override
  Widget build(BuildContext context) {
    return  SwitchListTile(
      value:_v,
      onChanged: (value)=>setState((){
        _v=value;
      }),

    );
  }
}

答案 1 :(得分:0)

首先,你应该为return json创建一个新类。你不应该将实体对象返回给ajax请求。

例如:

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

那么数据库插入过程的错误细节是什么?