Лучшие практики использования веб-сервисов (ASP.MVC) - PullRequest
0 голосов
/ 31 марта 2010

В основном у меня есть веб-сервисы, возвращающие данные в формате xml. После того, как я позвонил в веб-сервис для получения данных из функции веб-сервиса (GetUserList), я хочу взять эти данные и затем отобразить (без обратной передачи) полученную информацию. Я знаю несколько способов сделать это:

webservice отправляет данные обратно в javascript, затем javascript анализирует, заменяет строки или текст внутри div или потомка, или берет полученную информацию и затем помещает ее в формат таблицы html через javascript.

Вот некоторые из идей, которые я придумал, кто-нибудь знает лучшую практику для этого?

Использование ASP.MVC (.Net)

1 Ответ

1 голос
/ 31 марта 2010

Это полностью зависит от вашего приложения. У меня обоих было действие, возвращающее чистые данные (обычно JSON, а не XML), и обрабатывалось отображение в клиенте, а действие возвращало частичное представление. Для наиболее сложных сценариев отображения, я думаю, что маршрут с частичным просмотром является самым простым. По сути, вы возвращаете только ту часть страницы (HTML), которая будет обновлена. Вы используете javascript в обработчике обратного вызова AJAX, чтобы заменить соответствующий элемент (ы) на странице HTML-кодом, полученным с сервера. Обратите внимание, что вам нужно быть осторожным с привязкой обработчика событий, когда вы делаете это - почти всегда правильно использовать живые обработчики в jQuery 1.4+ и перепривязывать все, кроме обработчиков щелчков в jQuery 1.3.

Пример: Предполагается, что вы вызываете метод действия MVC, который возвращает частичное представление. Это будет вызывать действие show на контроллере foo каждые 5 секунд и обновлять containerToUpdate (предположительно, DIV), возвращая html.

  setInterval(
      function() {
          $.get( '<%= Url.Action( "show", "foo", new { id = Model.ID } ) %>',
                 function(html) {
                    $('#containerToUpdate').html( html );
                 });
      }, 5000
  );

Серверная сторона:

  [AcceptVerbs( HttpVerbs.Get )]
  public ActionResult Show( int id )
  {
      var model = ...

      if (this.Request.IsAjaxRequest())
      {
          return PartialView( model );
      }
      else
      {
          return View( model );
      }
  }

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

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