javascript - 为什么我的 C# 函数不从 ajax Javascript 代码执行?

标签 javascript c# jquery asp.net ajax

我的页面上有一个 HTML Canvas 。当我单击 Canvas 时,会绘制一个简单的点。我将坐标传递到 InsertIntoDB 函数,以将 x 和 y 坐标输入 MS SQL Server 数据库,但它没有发生。

但是,只要我使用虚拟 xCoord 和 yCoord 数字并返回一些内容(不是 void),我就可以将 C# 调用放入 HTML

元素中并使其正常工作。

p>

我的代码实际上弹出了“成功!”警报,但是当我运行 SQL 查询时,没有 INSERT。以下是 Default.aspx 中的代码:

function insertIntoDB(x, y) {
        try
        {
            $.ajax({
                type: 'POST',
                url: 'Default.aspx/InsertPoints', 
                data: "{'xCoord': '" + x + "', 'yCoord': '" + y + "'}",

                //    '{"xCoord": "' + x + '", "yCoord": "' + y + '"}',
                success: function (data) {
                    alert("Success!");
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Fail: " + textStatus);
                }
            });
        }
        catch (e)
        {
            alert(e);
        }
    }

以下是 Default.aspx.cs 中的 C# 代码:

[WebMethod]
    public static void InsertPoints(int xCoord, int yCoord) {
        string myConn = "Data Source=MYDATABASEINFO;Initial Catalog=DATABASENAME;Integrated Security=False;User ID=USERID;Password=MYPASSWORD";
        SqlConnection myConnection = new SqlConnection(myConn);
        try
        {
            myConnection.Open();
            SqlCommand myCommand= new SqlCommand("INSERT INTO DRAW (xCoord, yCoord) " +
                "Values (" + xCoord + ", " + yCoord + ");", myConnection);

            myCommand.ExecuteNonQuery();

            myConnection.Close();
        } 
        catch(Exception e) 
        {
            Console.WriteLine(e.ToString());
        }
    }

感谢您的帮助。

最佳答案

您正在尝试将 json 数据发送到服务器,那么您必须声明其内容类型。

为内容类型添加 jquery ajax 选项。

function insertIntoDB(x, y) {
        try
        {
            var data = {
                "xCoord": x,
                "yCoord": y
            };


            $.ajax({
                type: 'POST',
                url: 'Default.aspx/InsertPoints', 
                data: JSON.stringify(data), 
                contentType: 'application/json',
                success: function (data) {
                    alert("Success!");
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Fail: " + textStatus);
                }
            });
        }
        catch (e)
        {
            alert(e);
        }
    }

关于javascript - 为什么我的 C# 函数不从 ajax Javascript 代码执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376372/

相关文章:

javascript - Tokeninput将新标签保存到数据库

javascript - 单击按钮后更改打印样式

javascript - 是否可以从 javascript 获取网络掩码?

javascript - 如何通过比较其他三个选择选项值来禁用一个选择选项的值?

c# - Path.TryJoin 相对于 .NET Core 中的 Path.Combine 有什么优势?

c# - WebClient 与 HttpClient - 异步请求

javascript - 有什么方法可以知道客户端已经完全下载文件了吗?

php - 在 AJAX 中调用 PHP 脚本时出现错误消息 : Object not found!

javascript - 在 iframe 中显示来自外部页面的具有特定 ID 的 div

c# - 如何找到WMP网址的文件名和文件路径?