2011-04-06 69 views
0

我想与具有许多对象和方法的对象进行交互。使用JavaScript与对象交互

class Question 
    { 
     Boolean IsVisible; 
    }  
    class Exam 
     { 
      public 

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


    } 

从aspx页面我只想去服务器端获取考试对象与第一次的所有问题,然后accoroding来回答具体问题,一些问题将出现,并且其他将消失,我不需要再次到服务器端。现在我想使用Exam object中的方法来显示和隐藏。我从朋友那里得知Sencha,Prototype和JSON可以做到这一点。它是否正确,并且还可以调用考试对象中的方法没有去服务器端?

所有的想法都欢迎,你可以修改任何东西,除了将服务器端的两次

我希望它是明确的和随时问我要什么

+0

你能澄清你的意思吗?调用方法内部考试对象,而不去服务器端?您的“考试”课程在服务器上实施。你可以公开Web服务,以便从客户端调用它的方法,但仍然算作*去服务器端*恕我直言...... – 2011-04-06 18:54:32

+0

@Frederic:我真的不知道怎么回事!但我需要隐藏一些问题,并显示其他人没有去服务器端,如果你有任何建议,你可以 – 2011-04-06 19:00:56

+0

看到[这个答案](http://stackoverflow.com/questions/5537271/how-to-use-c-enumeration -values-in-javascript/5537730#5537730)例如手动“转换”服务器端集合到客户端阵列..在你的情况下,它是'List'而不是'enum',但逻辑是相同的。 – 2011-04-06 19:06:23

回答

1

你需要序列化所有这些问题JSON在服务器上。你不能在服务器和客户端之间传递逻辑,所以你必须用JavaScript实现客户端的逻辑。

+0

所以我应该在客户端实现方法 – 2011-04-06 19:02:08

+0

是的,你应该。 – 2011-04-07 07:31:21

0

只需使用ajax在服务器上调用[WebMethod]即可。

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

} 

然后,只需使用一个$.ajax调用"url/myaspx.aspx/myWebMethod"用正确的参数。您可以在回调中处理返回的字典。

+0

所以我会在服务器 – 2011-04-06 19:31:14

+0

@ thabet084创建web服务好样的。它更允许客户调用C#方法。只需将它添加到您的一个类中,然后从客户端调用它 – Raynos 2011-04-06 19:42:26