2011-04-06 2 views
0

Я хотел бы взаимодействовать с объектом, который имеет много объектов, а также методы.Использование JavaScript для взаимодействия с объектом

class Question 
    { 
     Boolean IsVisible; 
    }  
    class Exam 
     { 
      public 

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


    } 

С ASPX страницы я хочу идти только на стороне сервера, чтобы получить объект экзамен со всеми вопросами в первый раз, то accoroding ответить на конкретный вопрос, некоторые вопросы будут появляться и другие будут исчезать, и я не нужно снова вернуться на сервер. Теперь я хочу показать и скрыть использование методов в объекте Exam.I получил от моих друзей, что Sencha, Prototype и JSON могут это сделать. Правильно ли это, и могут ли они также вызвать методы внутри объекта экзамена не выходя на серверную сторону?

Все идеи приветствуются и вы можете изменить любую вещь, за исключением собирается стороне сервера дважды

Я надеюсь, что это ясно, и не стесняйтесь спросить у меня что-нибудь

+0

Можете ли вы пояснить, что вы подразумеваете под «вызовами методов внутри объекта экзамена без перехода на сервер»? Класс 'Экзамен' реализуется на сервере. Вы можете выставлять веб-сервисы для вызова своих методов со стороны клиента, но это все еще считается как * переход на серверную сторону * IMHO ... –

+0

@Frederic: Я действительно не знаю, как !!! но мне нужно скрыть некоторые вопросы и показать других, не выходя на сервер, если у вас есть какие-либо предложения, вы можете –

+0

См. [этот ответ] (http://stackoverflow.com/questions/5537271/how-to-use-c-enumeration -values-in-javascript/5537730 # 5537730), например, вручную «конвертируя» сборку на стороне сервера в массив на стороне клиента. В вашем случае это «Список» вместо «enum», но логика такая же. –

ответ

1

Вам нужно сериализовать все эти вопросы JSON на сервере. Вы не можете передавать логику между сервером и клиентом, поэтому вам придется реализовать логику на клиенте в JavaScript.

+0

Так что я должен реализовать метод на стороне клиента –

+0

Да, вы должны. –

0

Просто используйте ajax для вызова [WebMethod] на сервере.

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

} 

Тогда просто использовать $.ajax вызов "url/myaspx.aspx/myWebMethod" с правильными параметрами. Вы можете обрабатывать возвращаемый словарь в своем обратном вызове.

+0

Итак, я создам веб-службу на сервере –

+0

@ thabet084 Хорошо. Это больше позволяет клиенту вызывать метод C#. Просто добавьте его в один из ваших классов и вызовите его у клиента – Raynos

Смежные вопросы