从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将为空。

谢谢你的帮助。

斯科特

从javascript返回对象到silverlight

我是从服务器端的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