价值不传递
本文关键字: | 更新日期: 2023-09-27 18:01:31
我正在尝试将选定的复选框值发送到另一个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];
我做错了吗?我错在哪里?有人能帮忙吗?
一个简单的方法是改变一行:
data: "ids="+dataToBeDeleted.join(","),
并且,在服务器端做:
string[] ids = Request.QueryString["ids"].ToString().Split(",");
这样,您将在服务器中拥有一个字符串数组,其中包含相应的复选框值。
dataToBeDeleted
在发送到服务器时将被转换为查询字符串(如果还没有),这意味着它由键值对组成,即foo=bar&fred=fish
。在服务器上,您可以使用语法
string bar = request.QueryString["foo"];
您正在传递一个数组作为data
参数。这行不通。你需要传递一个对象。如果对象包含一个数组,它将被适当地序列化。这意味着你的代码应该看起来像这样:
data: {
toBeDeleted: dataToBeDeleted
},
这将被适当地序列化(参见$.param
的序列化过程),您可以使用后端代码检索这些值。