Как передать массив массивов из JavaScript в веб-сервис?
У меня есть следующий веб-сервис:
[webmethod]
public string MakeReservation(?? PassengersInfo)//what data type use for PassengerInfo
{
}
и в JavaScript у меня есть следующий код.
var ResultInfo = new Array();
$("#GrdPassengerInformationMakeReservation").find('tr:not(:first)').each(function() {
var Info = new Array();
Info.push($(this).find('td:eq(1)').text());
Info.push(($(this).find('td:eq(2)')).find('select').val());
Info.push(($(this).find('td:eq(3)')).find('input').val());
Info.push(($(this).find('td:eq(4)')).find('input').val());
Info.push(($(this).find('td:eq(5)')).find('select').val());
Info.push(($(this).find('td:eq(6)')).find('input').val());
ResultInfo.push(Info);
})
$.ajax(
{ url: "Ajaxes/Reservation.asmx/MakeReservation",
contentType: "application/json; charset=utf-8",
dataType: "json",
type: "POST",
data: "{'PassengersInfo':'" + ResultInfo + "'}",
async: false,
success: function(data) {
}
});
Я хочу пройти ResultInfo
на веб-сервис. Какой тип данных я должен использовать в моем веб-сервисе?
1 ответ
Решение
Поскольку Info
является массивом, используйте массив на стороне сервера. Но в этом случае вы можете передать Info
как таковой, вместо того, чтобы отправить его в другой массив, который снова является оберткой в object
в вашем методе пост ajax, т.е. data: Info
,
Или вы можете использовать ArrayList, так как ResultInfo
содержит массивы (в этом случае только один массив). В этом случае отправил сообщение Ajax с data: ResultInfo
,