Как ASP.NET MVC взаимодействует с веб-страницей с поддержкой AJAX? - PullRequest
0 голосов
/ 17 ноября 2008

Как данные передаются из MVC в браузер и обратно? Использует ли он собственную технологию Microsoft, такую ​​как ASMX или WCF, или что-то совершенно другое?

Звучит так, будто MVC использует веб-сервис ASMX, который они используют, но я не могу найти какую-либо документацию, которая дает реальный ответ.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2008

Данные из браузера <-> приложения MVC представляют собой простые данные запроса / ответа HTTP. Чтобы увидеть, что это за необработанные данные, установите на свой ПК Firebug или Fiddler и используйте его для отображения необработанных входных и выходных данных. Все довольно просто.

Веб-формы используют эту же модель запроса / ответа. браузер передает некоторую информацию на веб-сервер (т. е. запрос ... как ... я хочу видеть http://www.mysite.com/foo), а веб-сервер отвечает с некоторыми HTML, JSON, XML, двоичные данные (для изображений) и т. д ... это ответ.

Все браузеры общаются со всеми веб-сайтами, использующими эту модель Запрос / Ответ .

Теперь ... разница с MVC и WebForms заключается в том, КАК веб-сервер обрабатывает запрос и как он генерирует ответ. Таким образом, они оба придерживаются одной и той же концепции, просто относятся к ней по-разному. Например, MVC использует контроллеры для определения того, что показывать пользователю, в то время как у WebForms есть «страницы», которые определяют, какие данные (для этой страницы) показывать.

Итак, по сути, вы программируете свой сайт так:

  • Если пользователь вводит здесь , то показывает их эти данные .
1 голос
/ 17 ноября 2008

AJAX-запросы выполняются на странице с использованием обычного HTTP-запроса / ответа. То есть в javascript клиент создаст объект запроса AJAX, отправит его по URL-адресу и вернет строку. Если эта строка json, она может быть eval'd и стать живым объектом javascript.

Философия MVC заключается в том, что все http-запросы проходят через контроллеры. WCF предназначен только для других типов веб-сервисов, где клиент не использует html-json-css-etc.

Вы можете вернуть JSON из действия контроллера, используя метод Json (объектная модель) в System.Web.Mvc.Controller.

например

ActionResult MyAction() {
    return Json(new { success=false, for_lunch="mmm, chicken"});
}

Это вернет json, который может использовать ваша веб-страница. Таким образом, остается вопрос - как браузер вызывает MyAction для json?

Существует несколько сообщений на эту тему, и первое, что я смог найти, это было это сообщение .

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

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