2011-04-06 3 views
0

많은 객체와 메소드가있는 객체와 상호 작용하고 싶습니다. 난 단지 그 다음 특정 질문에 대한 답을 accoroding 처음으로 모든 질문에 시험 객체를 얻기 위해 서버 측에 가고 싶어 aspx 페이지에서JavaScript를 사용하여 객체와 상호 작용하기

class Question 
    { 
     Boolean IsVisible; 
    }  
    class Exam 
     { 
      public 

list<Question> questions; 
     getShowenBs() 
     { 
      //piece of code 
     } 
     getHiddenBs() 
     { 
      //piece of code 
     } 


    } 

, 몇 가지 질문이 표시되고 다른 하나는 사라지고 그렇게하지 서버 측에 다시 갈 필요가 있습니다. 이제 Exam 객체 내부의 메소드를 사용하여 숨기고 싶습니다. Sencha, Prototype 및 JSON이 할 수있는 것을 친구들로부터 받았습니다. 정확하고 시험 객체 내부의 메소드를 호출 할 수 있습니까? 서버 측에 가지 않고?

모든 아이디어를 환영하고 당신은 서버 측에가는 제외한 모든 일을 수정할 수 있습니다 내가 분명히하고 당신은 JSON에 대한 모든 질문을 직렬화 할 필요가 아무것도

+0

'서버 측에 가지 않고 시험 객체 내에서 메소드 호출하기'의 의미를 명확히 할 수 있습니까? 'Exam' 클래스는 서버에 구현되어 있습니다. 웹 서비스를 노출하여 클라이언트 측에서 메소드를 호출 할 수는 있지만 여전히 서버 측으로 이동합니다 * IMHO ... –

+0

@Frederic : 정말 모릅니다! 하지만 몇 가지 질문을 숨기려하고 당신이 할 수있는 제안이 있으면 서버 쪽 가지 않고 다른 사람을 보여줄 필요가 –

+0

[이 답변보기 (http://stackoverflow.com/questions/5537271/how-to-use-c-enumeration) -values-in-javascript/5537730 # 5537730) 예를 들어 수동으로 서버 측 컬렉션을 클라이언트 측 배열로 "변환"하는 경우를 생각해보십시오. 귀하의 경우에는'enum' 대신'List'이지만 논리는 동일합니다. –

답변

1

을 물어 주시기 바랍니다 회

서버에. 서버와 클라이언트간에 로직을 전달할 수 없으므로 JavaScript에서 클라이언트 로직을 구현해야합니다.

+0

그래서 클라이언트 측에서 메소드를 구현해야합니다. –

+0

예. –

0

그냥 ajax를 사용하여 서버에서 [WebMethod]을 호출하십시오.

[WebMethod] 
public static Dictionary<String, String> myWebMethod(string arg1, string arg2, ...) { 

} 

은 그럼 그냥 올바른 매개 변수와 함께 "url/myaspx.aspx/myWebMethod"$.ajax 전화를 사용합니다. 콜백에서 반환 된 사전을 처리 할 수 ​​있습니다.

+0

그래서 서버에 웹 서비스를 만들겠습니다. –

+0

@ thabet084 음. 그것은 클라이언트가 C# 메소드를 호출하는 것을 더 허용합니다. 클래스 중 하나에 추가하고 클라이언트에서 호출하십시오. – Raynos

관련 문제