Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core
AJAX (Асинхронный JavaScript и XML) представляет собой технологию гибкого взаимодействия между клиентом и сервером. Благодаря ее использованию мы можем осуществлять асинхронные запросы к серверу без перезагрузки всей страницы. Правда, в настоящее время все больше вместо формата XML используется формат JSON для взаимодействия между клиентом и сервером.
Применительно к ASP.NET MVC использование AJAX вылилось в целую концепцию под названием "ненавязчивого AJAX" и
ненавязчивого JavaScript (unobtrusive Ajax/JavaScript). Смысл этой концепции заключается в том, что весь необходимый код
JavaScript используется не на самой веб-странице, а помещается в отдельные файлы с расширением *.js. А затем с помощью тега
<script>
мы а веб-станице ссылаемся на данный файл кода.
Таким образом мы отделяем визуализацию от логики приложения. Что имеет свои плюсы. Так, выделение скрипта в отдельный загружаемый файл увеличивает производительность сайта, поскольку файл сохраняется в кэше и затем от туда подгружается.
Во-первых, соответствующие настройки должны быть указаны в файле Web.config:
<appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings>
Во-вторых, нам надо подключить соответствующие файлы JavaScript:
@Scripts.Render("~/scripts/jquery-1.7.1.js") @Scripts.Render("~/scripts/jquery.unobtrusive-ajax.js")
Первый файл - общая библиотека jQuery. Второй файл (jquery.unobtrusive-ajax.js) подключает к приложению функциональность Ajax-хелперов, например, Ajax-форм. Главное не забыть, подключить основную библиотеку jQuery перед остальными файлами, так как все остальные скрипты, как правило, зависят от нее.
Для осуществления ajax-запросов в ASP.NET MVC присутствует такая функциональность, как ajax-хелперы:
Хелпер | Описание |
Ajax.ActionLink | Создает гиперссылку на действие контроллера, по нажатию на которую происходит ajax-запрос к этому действию |
Ajax.RouteLink | Похож на хелпер Ajax.ActionLink, только ссылка создается на определенный маршрут, а не на действие контроллера |
Ajax.BeginForm | Создает html-форму, которая отправляет ajax-запросы к определенному действию определенного контроллера |
Ajax.BeginRouteForm | Похож на Ajax.BeginForm, только ajax-запросы направляются не к действию контроллера, к по определенному маршруту |
Ajax.GlobalizationScript | Создает ссылку на скрипт, который содержит информацию о культуре |
Ajax.JavaScriptStringEncode | Кодирует строку для использования в JavaScript |
Наиболее часто используются Ajax.ActionLink и Ajax.BeginForm, поэтому далее мы рассмотрим эти хелперы.