2011-04-06 106 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