Как работает MVC, когда индекс возвращается через AJAX? - PullRequest
0 голосов
/ 16 января 2010

он перезагружает всю страницу или обладает интеллектом для отправки только необходимых js для обновления необходимых частей страницы, которые изменились?

Если это будет последним, то это будет послан богом, однако я, вероятно, буду мечтателем. он, вероятно, возвращает весь вид без какого-либо отношения, верно?

edit: ответ вроде бы нет, все возвращается.

редактирование добавлено: Как вы думаете, было бы сложно написать структуру, в которой mvc сравнивает последний вывод html с текущим html, который мы хотим вывести, и вместо отправки всего html выясните, что изменилось, и сгенерируйте js-код, который будет выполнять обновление как по сравнению с предыдущим HTML? (предполагая, что ничего не было изменено вручную на клиенте с использованием js) ... может быть, идея для проекта codeplex? или может быть что-то подобное существует?

Ответы [ 2 ]

1 голос
/ 16 января 2010

Ну, это полностью зависит от того, как вы это делаете.

Вы можете возвращать все, что захотите, при использовании ajax для возвращения ваших данных в формате JSON. Пример:

public ActionResult GetCustomers()
{
    if(Request.IsAjaxRequest)
       return Json(db.GetCustomers());

   return View(db.GetCustomers());
}

Это вернет всех клиентов, закодированных в Json, если запрос был сделан с использованием Ajax.

Вы можете вернуть все, что захотите, если вы хотите вернуть представление, это просто на

return View(model);

Если вы не хотите возвращать макет (главную страницу), просто верните директиву MasterPageFile из вашего представления.

И нет, он не перезагружает всю страницу, поэтому он называется A jax.

0 голосов
/ 16 января 2010

Честно говоря, то, что происходит на стороне клиента, не имеет никакого отношения к MVC. :-) Он не знает, был ли сделан вызов браузером или скриптом ECMA.

И поскольку вы спрашиваете о вызове Ajax, ответственность за обработку результата ложится на ваш скрипт (или на любую используемую вами среду JS).

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