2010-04-24 3 views
0

좋아, 나는 함수 반환 결과로 단일 값을 반환하는 간단한 옛날 식 asmx webservice webthod를 호출하는 방법을 안다. 하지만 여러 출력 매개 변수를 반환하려면 어떻게해야합니까? 나의 현재 접근 방식은 분할 문자로 매개 변수를 분리하고 클라이언트에서 구문 분석하는 것입니다. 더 좋은 방법이 있습니까?Javascript가 Ajax WebMethod를 호출합니다. 출력 매개 변수를 여러 개 가져 오는 방법은 무엇입니까?

다음은 단일 함수 결과를 반환하는 방법입니다. 여러 출력 값을 반환하려면 어떻게합니까?

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="WebService.asmx" /> 
    </Services> 

    function CallHelloWebMethod() { 
     WebService.Hello(txtMyName.value, OnComplete1, OnTimeOut, OnError); 
    } 

    function OnComplete1(arg) { 

     alert(arg); 

    } 

    function OnTimeOut(arg) { 
    } 

    function OnError(arg) { 
    } 

<WebMethod()> Public Function Hello(ByVal MyName As String) As String 
    Return "Hello " & MyName 
End Function 

답변

4

시도해보십시오.

Public Class Person 
    Public Name As String 
    Public Greeting As String 
End Class 

은 그 다음의 WebMethod 클래스를 반환 할

먼저 반환 할 클래스를 설정 ... ...

<WebMethod()> _ 
Public Function Hello(ByVal MyName As String) As Person 
    Dim myPerson As New Person 
    myPerson.FirstName = MyName 
    myPerson.Greeting = "Hello " & MyName 
    Return myPerson 
End Function 

그리고 자바 스크립트를 업데이트 ...

function OnComplete1(arg) { 
    alert(arg.Greeting); 
} 

목록을 반환 할 수도 있습니다 ...

<WebMethod()> _ 
Public Function GetPeople() As Person() 
    Dim myPersonList As New Generic.List(Of Person) 
    Dim myPerson1 As New Person 
    myPerson1.FirstName = "Fred" 
    myPerson1.Greeting = "Hello " & MyName 
    Dim myPerson2 As New Person 
    myPerson2.FirstName = "Bill" 
    myPerson2.Greeting = "Hi " & MyName 
    myPersonList.Add(myPerson1) 
    myPersonList.Add(myPerson2) 
    Return myPersonList.ToArray() 
End Function 
3

여러 값을 반환하는 일반적인 방법은 AJAX 호출이 직렬화 된 JSON 객체를 반환하는 것입니다. 예를 들어

: 클라이언트 코드는 단지 자바 스크립트 객체를 생성 eval (또는 JSON.parse) 결과를 갖는 한 반환 값을 사용

{"firstName":"Santa","lastName":"Claus"} 

는 간단하다.

+0

지금까지 여러 값을 "|"로 구분하여 반환했습니다. char를 사용하고 Java split 함수를 사용하여 파싱합니다. 당신은 제가 익숙하지 않은 오페먼트 파싱 방법을 제안하는 것 같습니다. 한 가지 예를 가르쳐 주시겠습니까? – ChadD

+0

JSON이라고 불리우며 매우 광범위하게 사용됩니다 ("uppity"로 간주되지 않습니다). 인간이 읽을 수 있고 클라이언트 코드를 파싱하기가 더 쉽기 때문에 XML (AJAX의 "X")보다 더 널리 사용된다고 생각합니다. 기본적으로 JavaScript 객체 리터럴 표기법을 직렬화로 사용하고 있습니다. 이러한 이유로 클라이언트 측 자바 스크립트에 완벽하게 맞습니다. 예제가 포함 된 고급 개요 : http://en.wikipedia.org/wiki/JSON – jhurshman

관련 문제