以下是我要采取的步骤:
1)用户在silverlight中输入搜索词到框中,然后按Enter键
2)搜索词通过C#代码传递到javascript:HtmlPage.Window.Invoke(“CallAPI”,SearchText);
3)CallAPI函数通过$ .getJSON&将值返回到JS回调函数[已经完成]
4)将结果对象返回到Silverlight / C#页面,以便在silverlight UI中显示
除了第4步,我可以做所有事情。如何从Javascript中获取JSON对象到C#?我在过去的几个小时里一直在研究这个问题,这就是我认为会做到的:
ScriptObject myScriptObject = (ScriptObject)HtmlPage.Window.Invoke("CallWordStreamAPI", SearchText);
我在JS& amp;中设置了一个断点。验证我的return语句中的对象肯定填充了20行数据,如预期的那样。
我在C#中设置断点(ScriptObject myScriptObject = ....),调用后myScriptObject为null。 如果我在“return r”(我的对象)行的firebug / chrome dev中设置断点,我可以看到r.data中列出了20个项目。如果我在上面列出的myScriptObject行之后设置断点,则myScriptObject为null。
感谢您的帮助。
斯科特
答案 0 :(得分:0)
我是从服务器端的ViewModel调用它。我最终使用MVVM Messaging将关键字发送到客户端后面的代码。然后我调用了我的JS函数,返回结果,然后将消息重新发送到我的视图模型中。
除此之外,句法问题在这里得到解决:
答案 1 :(得分:0)
我的代码:
<!-- 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