2012-03-29 1 views
1

:배열을 자바 스크립트에서 웹 서비스로 전달하는 방법은 무엇입니까? 나는 웹 서비스 다음 한

[webmethod] 
public string MakeReservation(?? PassengersInfo)//what data type use for PassengerInfo 
{ 
} 

와 자바 스크립트 내가 코드를 다음했다.

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

제발 ... ** 결코 ** 문자열 기능을 사용하여 수동으로 JSON을 생성하십시오! https://github.com/douglascrockford/JSON-js/blob/master/json2.js를 포함시키고'JSON.stringify()'를 사용하십시오! – ThiefMaster

+0

왜 안 되니? 이점은 무엇입니까? –

+1

문자열 함수를 사용하여 XML을 빌드하지 않는 동일한 이유 : 이스케이프 처리, 대괄호 괄호 등의 처리를 원하지 않습니다. 게다가 문자열을 배열과 연결하여 코드가 'data : JSON.stringify ({PassengersInfo : ResultInfo}) '는 매력처럼 작동합니다. – ThiefMaster

답변

0

Info은 배열이므로 서버 측에서 배열을 사용하십시오. 그러나이 경우 Info을 전달할 수 있습니다. 다른 배열로 다시 전달하는 대신, (예 : data: Info)의 Ajax 게시 메소드에 래퍼합니다.
ResultInfo에 배열 (이 경우 하나의 배열 만 포함)이 있으므로 ArrayList를 사용할 수 있습니다. 이 경우 data: ResultInfo으로 아약스 게시물을 보냈습니다.

+0

'ArrayList'를'datatype'으로 사용했지만 방화 광에서 다음 오류가 발생합니다 : '' \ u0027System.String \ u0027 유형의 개체를 \ u0027System.Collections.ArrayList \ u0027 "'로 입력 할 수 없습니다. –