gpt4 book ai didi

javascript - 如何使用 Ajax 将 JavaScript 数组传递给 C# 函数

转载 作者:行者123 更新时间:2023-11-29 16:48:50 26 4
gpt4 key购买 nike

我在单击按钮时传递了 JavaScript 中的字符串数组,在单击按钮时,dataArray 存储表中第一个元素的字符串值,其中一些行已被选中,之后我 stringify 作为 JSON 并调用 Ajax 函数将数据发送到我在函数 DeleteStudent 后面的代码。
我在单击按钮时调用的 JavaScript 函数:

$('#deleteStudent').click(function () {
var dataArr = [];
$.each($("#StudentTable tr.selected"), function () {
dataArr.push($(this).find('td').eq(0).text());
});
var StudentList = JSON.stringify(dataArr);
$.ajax({
type: "POST",
url: "ViewStudents.aspx/DeleteStudent",
contentType: "application/json; charset=utf-8",
data: { Students: dataArr },
dataType: "json",
traditional: true,
success: function (result) {
alert('Yay! It worked!');
},
error: function (result) {
alert('Oh no :( : '+result);
}
});
console.log(StudentList);
});

dataArray 看起来像这样

["10363","10364","10366"]

函数背后的代码:

[WebMethod]
public static void DeleteStudent(string[] Students)
{
Console.WriteLine("Reached CS");
string[] a =Students;
for (int i = 0; i < a.Length; i++)
{
string admissionNumber=a[i];
using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString))
{
using (MySqlCommand deleteStudent = new MySqlCommand())
{
deleteStudent.CommandType = CommandType.Text;
deleteStudent.Connection = conn;
deleteStudent.CommandText = "DELETE FROM validstudents WHERE admissionNumber = @admissionNumber ";

deleteStudent.Parameters.AddWithValue("@admissionNumber", admissionNumber);

conn.Open();
deleteStudent.ExecuteNonQuery();
conn.Close();
}
}
}
}

它给了一个500的内部服务器

最佳答案

总是在将 JSON 发送到 WebMethod 之前将其字符串化

data: JSON.stringify({ Students: dataArr })

关于javascript - 如何使用 Ajax 将 JavaScript 数组传递给 C# 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166510/

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