Я должен интегрировать существующее веб-приложение asp.net в другую страницу с помощью метода load () jQuery - PullRequest
1 голос
/ 17 марта 2009

Мне нужно интегрировать существующее простое приложение веб-форм asp.net, включая обратные ссылки и т. Д., В другой внешний сайт с помощью вызова jQuery load (). Это приложение предназначено для интеграции через iframe. Я сомневаюсь, что это возможно без переписывания приложения.

Приложение представляет собой базовую анкету, которая приводит пользователя к предложению продукта в конце.

У кого-нибудь есть указания на то, как я могу это решить? Я думаю, мне, вероятно, придется переписать приложение с веб-сервисами и динамическими вызовами RenderUserControls, мне также понадобится доступ к странице, которая вызывает load (), и написать дополнительные методы jQuery для обработки пользовательского ввода ... Возможно, удалить все обратные вызовы asp.net и переписать обработку пользовательского ввода?

1 Ответ

1 голос
/ 18 марта 2009

Прежде всего вы должны отметить, что функция load(), как и все ajax, может работать только в одном домене. Поэтому, если «внешний сайт» находится на другом домене, ajax - неправильный выбор.

Звучит как тяжелая работа, в зависимости от сложности страницы. Обратная передача может происходить во многих местах - при щелчках по изображению, при выборе комбо и т. Д. Кроме того, существуют скрытые поля, о которых следует беспокоиться, например, состояние просмотра и обработчик события - они имеют одинаковые имена на обеих страницах. Вам будет легче, если внешний сайт не имеет состояния и обратных передач.

Если страницы относительно простые, это, вероятно, можно сделать. По моему опыту, формы не очень хорошо работают в других формах, поэтому вам придется удалить одну из них (возможно, форму загруженной страницы) или разместить их одну за другой. Как вы уже упоминали, вам придется переписывать постбэки, вам нужно сериализовать данные. Возможно, вы сможете изменить эту строку, чтобы она соответствовала именам на исходной странице (если вы изменили имя состояния просмотра и т. Д., Проще изменить его обратно на сериализованную строку, чем связываться с идентификаторами), разместите ее на исходной страницы и загрузите снова.

Лично, насколько бы я ни любил jQuery, и насколько этот проект звучит интересно (и так), я бы, наверное, выбрал решение на стороне сервера. Звучит гораздо проще создать пользовательский элемент управления (который может использовать сам Ajax) или раскрыть функциональность страницы с помощью веб-служб или, что лучше, универсальных обработчиков.

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