ASP.Net MVC и Webservices / Ajax - какой маршрут выбрать? - PullRequest
3 голосов
/ 03 апреля 2009

Я занимаюсь разработкой ASP.Net mvc-приложения, которое требует выполнения небольших атомарных действий без обратной передачи всей страницы. Логичный способ сделать это, конечно, с помощью вызова ajax.

Мой вопрос - Что бы люди посоветовали, это лучший способ достичь этого?

Насколько я знаю, я могу сделать это следующим образом:

  • WCF + ajax
  • Действия контроллера в приложении mvc - возможно, возвращаются как результат JSON.
  • Веб-сервисы (отдельный / комбинированный проект) + ajax

У меня есть требование, чтобы пользователь входил в систему при использовании webservice / wcf / ajax, который в настоящее время выполняется через cookie / идентификатор сессии, но, насколько мне известно, все вышеперечисленные методы позволяют это.

В целом, какой бы метод я в итоге ни использовал, он будет обращаться к базе данных через стандартизированные вызовы доступных методов, так что я не привязан к тому, чтобы держать все в одном проекте / пространстве имен.

Хотелось бы услышать мысли / переживания людей об этом!

Ответы [ 2 ]

3 голосов
/ 03 апреля 2009

Я бы рекомендовал делать это как действия контроллера. И вот почему: вы можете в итоге заставить одно и то же действие возвращать несколько разных представлений. Например, действие GetPerson () может вернуть данные Person в виде XML, JSON или HTML (и, возможно, других представлений).

Это распространенный подход в Rails, а также в ASPMVC.

1 голос
/ 03 апреля 2009

Вы обязательно должны использовать действия контроллера, вот несколько причин, почему:

  • Использование WCF / Webservices было бы излишним для этого (я предполагаю, что у вас еще нет кода WCF / Webservices, который используют все)
  • Использование действий контроллера естественно подходит для подобных ситуаций
  • Вы можете легко отступить, если у пользователя отключен Javascript или браузер не поддерживается. (Путем создания пары методов действия, которые возвращают полное представление)
  • Также, как упоминал Майкл, вы можете выполнить это атомарное обновление путем рендеринга партиалов

Надеюсь, это поможет.

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