Как инициализировать элемент управления silverlight без вызова веб-службы - PullRequest
1 голос
/ 05 января 2010

Я занимаюсь разработкой веб-приложения asp.net mvc, в котором широко используются jquery и принцип прогрессивного улучшения.

У меня есть требование к сложному элементу управления, которому для работы нужен доступ к коду .net (используя отражение в многочисленных классах). Выбор заключался в дублировании этого кода в javascript (автоматическая генерация, если это возможно), или использование silverlight. Я собираюсь с опцией silverlight (по крайней мере для V1).

Предварительная версия Silverlight моего элемента управления начинает жизнь как несколько простых HTML-элементов, которые преобразуются jquery в более богатую версию. Однако примеры, которые я видел в элементах управления silverlight, все перезванивают на сервер после загрузки страницы, чтобы получить их данные. Или, если эти данные простые, он использует параметр initParams.

Мои данные инициализации намного сложнее, и я думаю, что initParams может работать с ними, и я не хочу перезванивать на сервер, поскольку у меня уже есть эти данные.

Так, каковы мои лучшие варианты?

Ответы [ 2 ]

1 голос
/ 06 января 2010

В описываемом вами сценарии вы можете использовать HTMLBridge в Silverlight для вызова функции JavaScript на своей странице, которая может предоставить сложные данные. Silverlight имеет библиотеки для обработки как XML, так и JSON, однако привязка данных Silverlight становится намного более удобной при загрузке этих данных в строго типизированную модель.

1 голос
/ 05 января 2010

Вы можете поместить все, что вы хотите в initParams. Это просто строка, но если у вас есть сложный объект, который вы хотите передать элементу управления silverlight, вы можете сериализовать объект в строку, добавить его в initParams и затем десериализовать его в элементе управления silverlight.

Кроме того, вы знаете, что вы можете связываться из javascript в управляемый код в элементе управления silverlight (функции должны быть помечены атрибутом ScriptableMember)?

Не говоря уже о том, что вам не нужно беспокоиться о вызовах из элемента управления silverlight обратно в WCF или asmx webservice - по моему опыту, вызовы очень быстрые, если вы не передаете большие объемы данных.

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