Как лучше всего использовать ASP.NET MVC и AJAX через JSON? - PullRequest
1 голос
/ 09 июля 2010

В веб-формах ASP.NET я писал AJAX-приложения, в которых клиент мог бы общаться с сервером с помощью веб-служб или методов страниц и JSON.

Я новичок в ASP.NET MVC и обнаружил, чтоМожно использовать веб-службы или действия контроллера, которые используют JSON.Есть ли другие варианты?Должен ли я использовать веб-сервисы или действия контроллера и почему?

1 Ответ

1 голос
/ 09 июля 2010

Большинство приложений MVC используют действия контроллера для действий Ajax.

Я думаю, «почему» в том, что вы используете свой набор навыков и инфраструктуру MVC. Все, что вы делаете в приложении, соответствует модели MVC, почему бы не включить в него и Ajax? Это просто очень естественный паттерн.

На сервере я часто забываю, вызвано ли действие Ajax или нет. Я думаю, что это очень хорошая вещь. Метод вызова действия - отдельная проблема от того, что делает действие. Это особенно верно, когда вы используете прогрессивное улучшение (Ajax для Javascript включен, http post для не-js). Тогда шаблон выглядит примерно так: Мне очень нравится, что я могу забыть о механизме общения и сосредоточиться на том, что должно делать мое приложение.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyProgressiveEnhancedAction(FormCollection form)
{
  // Handle Html Post

  if (!Request.IsAjaxRequest())
    return ActionViaHtmlPost();

  // Ajax Invocation

  ...

Когда я использую этот шаблон, я часто обнаруживаю, что у меня есть немного клея, чтобы абстрагировать Ajax от Post, а остальные (модель, доменные взаимодействия и т. Д.) Являются общими.

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