从javascript返回对象到silverlight
本文关键字:silverlight 对象 返回 javascript | 更新日期: 2023-09-27 18:08:08
以下是我想采取的步骤:
1)用户在silverlight中输入搜索词,然后按回车
2)搜索词通过c#代码:HtmlPage.Window传入javascript。调用("CallAPI SearchText);
3) CallAPI函数通过$命中API。getJSON,返回一个值到JS回调函数[这已经完成]
结果对象返回到Silverlight/c#页面以在Silverlight UI中显示
除了第4步,我什么都能做。我如何得到JSON对象从Javascript到c# ?在过去的几个小时里,我一直在研究这个问题,我认为可以这样做:
ScriptObject myScriptObject = (ScriptObject)HtmlPage.Window.Invoke("CallWordStreamAPI", SearchText);
我在JS中设置了一个断点&验证返回语句中的对象确实如预期的那样填充了20行数据。
我在c#中设置了一个断点(ScriptObject myScriptObject = ....),并且myScriptObject在调用后为空。如果我在firebug/chrome dev的"return r"(我的对象)行设置一个断点,我可以看到r.data中列出了20个项目。如果我在上面列出的myScriptObject行之后设置一个断点,myScriptObject将为空。
谢谢你的帮助。
斯科特我是从服务器端的ViewModel调用的。我最终使用MVVM Messaging将关键字发送到客户端后面的代码。然后我调用我的JS函数,返回结果,并将消息射回我的视图模型。
除此之外,语法问题在这里得到了解决:
如何将JavaScript函数传递给Silverlight?
我的代码:
<!-- language: JavaScript -->
function sendText() {
return "Hi from Javascript!";
}
<!-- language: C# -->
string obj = HtmlPage.Window.Invoke("sendText", null) as string;
txtReturnData.Text = obj;
<!-- language: VB.Net -->
Dim obj As String = TryCast(HtmlPage.Window.Invoke("sendText", Nothing), String)
txtReturnData.Text = obj