| Четверг, 9 января, 2014
Метки: jQuery, ASP.NET Web API Комментарии: 0
Далее мы добавим HTML-страницу, которая через AJAX вызывает методы Web API. AJAX-вызовы мы будем делать через библиотеку jQuery и затем выводить результаты на странице.
В Solution Explorer правой клавишей мыши на проекте выберем Add -> New Item.
В диалоге Add New Item выберем ветку Installed -> Visual C# -> Web. В списке шаблонов выберем HTML Page. Назовем ее "index.html".
Заменяем весь код страницы на следующий:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ProductsApp клиент</title> </head> <body> <div> <h2>Все Товары</h2> <ul id="products" /> </div> <div> <h2>Найти по ID</h2> <input type="text" id="prodId" size="5" /> <input type="button" value="Искать" onclick="find();" /> <p id="product" /> </div> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"> </script> <script> var uri = 'api/products'; $(document).ready(function () { // Посылаем AJAX запрос $.getJSON(uri) .done(function (data) { // Запрос прошел удачно, 'data' содержит список товаров. $.each(data, function (key, item) { // Добавляем элемент списка с товаром. $('<li>', { text: formatItem(item) }) .appendTo($('#products')); }); }); }); function formatItem(item) { return item.Name + ': $' + item.Price; } function find() { var id = $('#prodId').val(); $.getJSON(uri + '/' + id) .done(function (data) { $('#product').text(formatItem(data)); }) .fail(function (jqXHR, textStatus, err) { $('#product').text('Ошибка: ' + err); }); } </script> </body> </html>
Существует много способов получения библиотеки jQuery. В примере выше использовался Microsoft Ajax CDN. Можно также скачать библиотеку с сайта http://jquery.com/. А также при создании проекта по шаблону "Web API" библиотека jQuery устанавливается по умолчанию.
Для получения списка продуктов отправляется HTTP GET запрос по адресу "/api/products".
Функция getJSON посылает AJAX запрос. В качестве ответа приходит массив объектов JSON. Функция done представляет собой функцию обратного вызова (callback), которая вызывается в случае успешного запроса. В этой функции мы обновляем DOM пришедшей информацией о продукте.
$(document).ready(function () { // Посылаем AJAX запрос $.getJSON(uri) .done(function (data) { // Запрос прошел удачно, 'data' содержит список товаров. $.each(data, function (key, item) { // Добавляем элемент списка с товаром. $('<li>', { text: formatItem(item) }) .appendTo($('#products')); }); }); });
Для получения продукта по ID отправляем HTTP GET запрос по адресу "/api/products/{id}", где id – это идентификатор продукта.
function find() { var id = $('#prodId').val(); $.getJSON(uri + '/' + id) .done(function (data) { $('#product').text(formatItem(data)); }) .fail(function (jqXHR, textStatus, err) { $('#product').text('Ошибка: ' + err); }); }
Нажимаем F5 для запуска приложения. Откроется следующая страница:
Для получения продукта по ID. Введем ID и нажмем кнопку Искать.
Если продукта с введенным ID не существует, то получим ошибку HTTP:
Copyright © CodeHint.ru 2013-2024 (v2.4.7 - работает на Angular Universal)Калькулятор инвест-портфеля