Возврат объекта из JavaScript в Silverlight - PullRequest
0 голосов
/ 11 сентября 2011

Вот шаги, которые я хотел бы предпринять:

1) Пользователь вводит поисковый запрос в поле в серебряном свете, затем нажимает клавишу ввода

2) Поисковый термин передается в javascript через код C #: HtmlPage.Window.Invoke ("CallAPI", SearchText);

3) Функция CallAPI обращается к API через $ .getJSON и возвращает значение в функцию обратного вызова JS [это уже сделано]

4) Результирующий объект возвращается на страницу Silverlight / C # для отображения в интерфейсе Silverlight

Я могу сделать все, кроме шага 4. Как получить объект JSON из Javascript в C #? Я работал над этим последние несколько часов, и я думал, что это будет сделано:

ScriptObject myScriptObject = (ScriptObject)HtmlPage.Window.Invoke("CallWordStreamAPI", SearchText);

Я установил точку останова в моем JS и подтвердил, что объект в моем операторе return определенно заполнен 20 строками данных, как и ожидалось.

Я установил точку останова в моем C # (ScriptObject myScriptObject = ....), и myScriptObject является нулевым после вызова. Если я установлю точку останова в firebug / chrome dev в строке «return r» (мой объект), я увижу, что в r.data перечислены 20 элементов. Если я установлю точку останова после строки myScriptObject, указанной выше, myScriptObject будет нулевым.

Ваша помощь приветствуется.

Scott

Ответы [ 2 ]

0 голосов
/ 29 июля 2016

Мой код:

<!-- 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
0 голосов
/ 11 сентября 2011

Я звонил из ViewModel на стороне сервера.В итоге я использовал MVVM Messaging для отправки ключевого слова в мой код на стороне клиента.Затем я вызвал свою функцию JS, вернул результат и выстрелил сообщение обратно в мою модель представления.

Помимо этого, здесь были решены синтаксические проблемы:

Как я могупередать функцию JavaScript в Silverlight?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...