Вопрос дизайна о wcf и навигации по страницам - PullRequest
0 голосов
/ 10 мая 2011

У меня есть веб-сайт ac # / asp.net 4.0 (не MVC), где пользователь может искать различные элементы.Функциональность поиска / результатов работает примерно так:

На странице поиска пользователь заполняет критерии поиска (текстовые поля, выпадающие списки и т. Д.) И нажимает кнопку отправки.Обработчик события on_click выполняет некоторую проверку и / или проверку ошибок.Если все получится, я создаю объект для хранения всех значений и помещаю объект в сессию.Затем я делаю response.redirect к странице результатов.На странице результатов я читаю объект вне сеанса, связываюсь со службой wcf и передаю объект ему.Wcf выполняет поиск и возвращает результаты (если таковые имеются), и я отображаю результаты.

Мне было бы любопытно, если бы был лучший способ сделать это.Это работает хорошо, но что-то не так в этом.Я не слишком в восторге от загрузки объекта в сессию.

Я бы предпочел отправить объект (с критериями поиска) в wcf, затем выполнить перенаправление, чтобы страница результатов задерживалась до тех пор, пока я не получу ответ от службы wcf.Как только я получу результаты, вернитесь и загрузите страницу с результатами.

Возможно ли это?Будем благодарны за любые отзывы / ссылки.

Также не будет никаких третьих лиц, использующих наш сервис wcf, это все в доме.

1 Ответ

2 голосов
/ 10 мая 2011

Есть три способа сделать это

  • Вместо передачи данных в виде поста используйте простой GET на страницу поиска. Критерии поиска будут переданы в URL, как, например, выполнено Google.
  • Пост-кросс-пост назад - функция доступна с .NET 2.0. Это удалит сессию и перенаправит. Вы также можете использовать Server.Transfer / Server.Execute.
  • AJAX обратный вызов. Ваш поиск не будет отправлять форму, но позвонить в службу напрямую, чтобы получить результат. Вы можете либо использовать диспетчер сценариев ASP.NET и все такое, либо использовать легковесный фреймворк javascript, такой как jQuery. Ваша служба WCF должна предоставить webHttpEndpoint с кодировкой JSON.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...