C# 未传递的值
我正在尝试将选中的复选框值发送到另一个asp页面以更新数据库C# 未传递的值,c#,asp.net,jquery,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()); });
$("#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];
我做得不对吗?我的错在哪里?有人能帮忙吗?
dataToBeDeleted
将在发送到服务器时转换为查询字符串(如果尚未转换),这意味着它由键值对组成,即foo=bar&fred=fish
。在服务器上,您可以使用以下语法查询单个键值对
string bar = request.QueryString["foo"];
您正在传递一个数组作为
数据
参数。这行不通。您需要传递一个对象。如果对象包含数组,则会对其进行相应的序列化。这意味着您的代码可能如下所示:
data: {
toBeDeleted: dataToBeDeleted
},
然后将对其进行适当的序列化(有关序列化过程,请参阅),您可以使用后端代码检索值。一个简单的方法是更改一行:
data: "ids="+dataToBeDeleted.join(","),
并且,在服务器中执行以下操作:
string[] ids = Request.QueryString["ids"].ToString().Split(",");
这样,您将在服务器中拥有一个带有相应复选框值的字符串数组
希望这能有所帮助。ToString()没有任何意义,因为它已经是一个字符串,并且您有语法错误,在c35;
中,它需要方括号。我会使用(Request.QueryString[“ids”]+).Split(',')代码>以避免未传递值时出现异常。