价值不通过

时间:2011-07-08 20:42:16

标签: c# asp.net jquery

我正在尝试将选定的复选框值发送到另一个asp页面以更新数据库。

$("#Delete_selected_Comment_button").click(function () {
    var dataToBeDeleted = new Array();
    $('.checkboxes_to_delete:checked').each(function (key, value) {
        dataToBeDeleted .push($(this).val());
    });

    $.ajax({
        url: 'http://myurl.aspx',
        type: 'GET',
        data: dataToBeDeleted,
        success: function () { alert('yipee'); },
        error: function () { alert("Ooff could not delete data"); }
    });
});

问题:

我无法在myurl.asp页面中检索任何值 我在做:

String datagotfromajax= request.QueryString[dataToBeDeleted];

我做错了吗?我的错误在哪里?有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

dataToBeDeleted在发送到服务器时将被转换为查询字符串(如果尚未转换),这意味着它包含键值对,即foo=bar&fred=fish。在服务器上,您可以使用语法

查询单个键值对
string bar = request.QueryString["foo"];

答案 1 :(得分:0)

您正在将数组作为data参数传递。这不行。你需要传递一个对象。如果对象包含数组,则将对其进行适当的序列化。这意味着您的代码应该如下所示:

data: {
    toBeDeleted: dataToBeDeleted
},

然后将对其进行适当的序列化(有关序列化过程,请参阅$.param),您可以使用后端代码检索值。

答案 2 :(得分:0)

一种简单的方法是改变一行:

data: "ids="+dataToBeDeleted.join(","),

并且,在服务器中执行:

string[] ids = Request.QueryString["ids"].ToString().Split(",");

有了这个,你就会在服务器中找到一个带有相应复选框值的字符串数组。

HOpe这有帮助。