下面是我想採取的步驟:從JavaScript返回對象的Silverlight
1)用戶輸入搜索項框在Silverlight,然後按下回車
2)搜索術語傳入的javascript通過C#代碼:HtmlPage.Window.Invoke(「CallAPI」,SearchText);
3)CallAPI函數命中通過$ .getJSON &返回一個值到JS回調函數[這已經完成]
4)結果對象被返回到Silverlight/C#頁在Silverlight顯示的API UI
我可以做除了第4步以外的任何事情。我如何從Javascript獲取JSON對象到C#中?我一直工作在這最後幾個小時,而這也正是我想會做到這一點:
ScriptObject myScriptObject = (ScriptObject)HtmlPage.Window.Invoke("CallWordStreamAPI", SearchText);
我設置在我的JS斷點&驗證了我的return語句的對象肯定是用填充如預期的那樣,20行數據。
我在C#中設置了一個斷點(ScriptObject myScriptObject = ....),並且myScriptObject在調用之後爲空。 如果我在「返回r」(我的對象)行在firebug/chrome dev中設置斷點,我可以看到r.data中列出了20個項目。如果我在上面列出的myScriptObject行之後設置斷點,myScriptObject爲空。
您的幫助表示讚賞。
Scott
你爲什麼要打電話到JavaScript呢?爲什麼不直接用silverlight編碼呢? – AnthonyWJones
我有的API庫是在JS中,文檔說:「我們格式化的響應被設計爲使用JQuery getJSON方法最佳地工作。」 –
好吧,但沒有「jQuery優化json」之類的東西。 json是一個標準,Silverlight有兩種非常好的方式來處理json,我強烈建議你使用它們而不是阻止JavaScript調用。 – AnthonyWJones