gpt4 book ai didi

c# - 对 ASP.NET WebMethod 的 Ajax 调用未命中服务器端方法

转载 作者:行者123 更新时间:2023-11-30 23:33:19 27 4
gpt4 key购买 nike

我正在尝试将单个参数传递给我的代码。我正在达到 ajax 的成功结束,但我的 aspx.cs 代码中的方法没有被调用。如果它有所作为,我会使用主文件。

Javascript:

$(document).ready(function () {
var someID = "";
$('.glyphicon-trash').click(function () {
$.ajax({
type: "POST",
url: "fileName.aspx/deleteSomething",
data: "{'deleteSomeID':'" + someID + "'}", // someID is assigned to a value by another button
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success"); // this alert works.
}
});
});
});

文件名.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
//... stuff here
}

[WebMethod]
public static void deleteSomething(string deleteSomeID)
{
MySqlDbUtilities db = new MySqlDbUtilities();
MySqlCommand cmd;
string sql = "DELETE FROM Targets WHERE targetID = @someID";
cmd = db.GetCommand(sql);

cmd.Parameters.AddWithValue("@someID", deleteSomeID);

cmd.ExecuteNonQuery();
db.Dispose();
}

当你点击页面上的按钮时,“someID”被填充。这是正常工作,我三重检查。然而,该方法不执行任何操作。也不知道是不是达到了。有什么想法吗?

最佳答案

不要手动构建 data 参数,而是使用 JSON.stringify 进行适当的编码:

$.ajax({
type: "POST",
url: "fileName.aspx/deleteSomething",
data: JSON.stringify({ deleteSomeID: someID }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert("success");
}
});

此外,您还可以处理查询可能引发异常的情况,并在您的 UI 中采取相应的操作,这是一种非常简单的方法:

[WebMethod]
public static string deleteSomething(string deleteSomeID)
{
try {
MySqlDbUtilities db = new MySqlDbUtilities();
MySqlCommand cmd;
string sql = "DELETE FROM Targets WHERE targetID = @someID";
cmd = db.GetCommand(sql);

cmd.Parameters.AddWithValue("@someID", deleteSomeID);

cmd.ExecuteNonQuery();
db.Dispose();
}
catch (Exception e) {
return e.Message;
}

return "1";
}

然后,管理成功回调的响应:

$.ajax({
type: "POST",
url: "fileName.aspx/deleteSomething",
data: JSON.stringify({ deleteSomeID: someID }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
if (response == "1") {
alert("Successful deletion");
} else {
alert("Operation failed! Details: " + response);
}
}
});

关于c# - 对 ASP.NET WebMethod 的 Ajax 调用未命中服务器端方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34000884/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com