首页 > 解决方案 > AJAX 不调用 WebMethod ASP.net

问题描述

我正在尝试使用 ajax 在不回发的情况下将数据插入 mysql。

下面的代码是

<script src="Scripts/jquery-3.5.1.min.js"></script>
<script src="Scripts/jquery-3.5.1.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<input type="button" value="Submit" onclick="SaveRecord();" /> 

<script type="text/javascript">  

                    function SaveRecord() {

                        var obj = { Year: $("#yeartxt").val(), Title: $("#titletxt").val(), Content: $("#contenttxt").val() };

                            //Jquery Ajax call to server side method  
                                     var year = $("#yeartxt").val();
                                        var title = $("#titletxt").val();
                                        var content = $("#contenttxt").val();

                                        //Jquery Ajax call to server side method  
                                        $.ajax({
                                            type: "POST",
                                            url: "Page.aspx/InsertDetails",
                                            data: "{'Year':" + year + ",'Title':" + title + ",'Content':" + content + "}",
                                            contentType: "application/json; charset=utf-8",
                                            dataType: "json",
                                            success: function (data) {
                                                alert("Updated!");
                                            }
                                        });
                                
                    }
                </script>  

服务器端代码(WebMethod)是

        [WebMethod]
        public static void InsertDetails(string Year, string Title, string Content)
        {
            string CoString = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString;
            using (MySqlConnection CoN = new MySqlConnection(CoString))
            {
                using (MySqlCommand cmd = new MySqlCommand("INSERT INTO db(year, title, content) VALUES(@year, @title, @content)", CoN))
                {
                    CoN.Open();
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Year", Year);
                    cmd.Parameters.AddWithValue("@Title", Title);
                    cmd.Parameters.AddWithValue("@Content", Content);
                    cmd.ExecuteNonQuery();
                }
            }
        }

但是,没有调用 WebMethod(我尝试调试它)。我试着玩弄代码。没有任何效果。中的警报success: function (data) { alert("Updated!"); }正在工作,这可能表明 ajax 代码没有问题,我想。

我需要帮助,或者在没有回发的情况下将数据插入 mysql 的替代方法。那是我的重点。

谢谢你。

标签: jqueryasp.netajax

解决方案


推荐阅读