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

标签 javascript c# jquery asp.net ajax

我在单击按钮时传递了 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/

相关文章:

jquery - 将 MarkItUp 富文本编辑器预览与 ASP.NET MVC 应用程序集成

javascript - 如何使用javascript打印到控制台?

javascript - 删除jquery函数

c# - 错误 : Tenant authorize not found. 如果租户没有事件订阅,则可能会发生这种情况

c# - “Expression denotes a ` variable ', where a ` method group' was expected “这是什么意思?

.net - .net 4.0 中的云计算

javascript - 如何压缩我的 .show 和 .hide jQuery?

javascript - 在多次上传中,所有图像都附加到最后一个容器 div

javascript - 内联onclick是如何评估的?

jquery - 谷歌浏览器不显示箭头标志