Гайдар Магдануров - ASP.NET MVC Framework

Тут можно читать онлайн Гайдар Магдануров - ASP.NET MVC Framework - бесплатно ознакомительный отрывок. Жанр: Интернет, издательство БХВ-Петербург, год 2010. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    ASP.NET MVC Framework
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2010
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-0462-1
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Гайдар Магдануров - ASP.NET MVC Framework краткое содержание

ASP.NET MVC Framework - описание и краткое содержание, автор Гайдар Магдануров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Рассмотрены основные принципы и возможности технологии ASP.NET MVC Framework и показаны способы ее практического использования при разработке веб-приложений. Описаны преимущества подхода разработки MVC и рассмотрена структура MVC-приложения. Приведено сравнение технологии WebForms и MVC Framework и рассмотрены вопросы их совмещения.
Описаны модель и доступ к данным (технологии LINQ, Entity Framework и др.), контроллеры, представление и интерфейс приложения, механизмы маршрутизации и Ajax-функциональность. Уделено внимание вопросам тестирования веб-приложений. Рассмотрены особенности применения ASP.NET MVC 2 в Visual Studio 2010.
Для программистов

ASP.NET MVC Framework - читать онлайн бесплатно ознакомительный отрывок

ASP.NET MVC Framework - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Гайдар Магдануров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

MembershipUser user = mp.GetUser(userName, false);

UserData userData = new UserData()

{

Comment = user.Comment,

Email = user.Email,

IsApproved = user.IsApproved,

IsLockedOut = user.IsLockedOut

};

return Json(userData, null, Encoding.UTF8);

}

В представленном фрагменте кода для передачи набора данных о пользователе в виде JSON-данных используется единственный метод Json, которому передается набор данных. Результатом, который получит пользователь в ответ, например, на такой запрос http://localhost:5434/Admin/SelectUserData?userName=adminбудет текст в следующем формате:

{"UserId":null,"Email":"vyunev@live.ru","Comment":"","IsApproved":true, "IsLockedOut":false,"CurrentMembershipUser":null}

FileResult

Очень часто в ответ на запрос пользователя требуется вернуть не HTML-страницу или данные в формате JSON, а какой-нибудь бинарный файл. FileResult— это механизм, который как раз и позволяет возвратить файл как результат работы действия контроллера.

У FileResultесть два важных свойства, которые требуется указывать при возвращении результата действия:

contentType— свойство, которое задается через конструктор класса FileResultи не может быть изменено напрямую. ContentTypeуказывает MIME-тип содержимого передаваемого файла;

FileDownloadName— свойство, указывающее на файл, который требуется передать в ответ на запрос.

Рассмотрим использование FileResultна следующем примере. Пусть нам требуется на пользовательский запрос возвращать сопоставленный с пользователем рисунок. Реализуем эту возможность с помощью файловой системы. Для этого создадим в корне проекта папку Admin, в которой будем хранить рисунки пользователей в формате PNG с именем вида: GUID пользователя.рng. Действие GetUserImageконтроллера AdminController, которое будет возвращать изображение с помощью FileResult, представлено в следующем фрагменте:

public ActionResult GetUserImage(string userName)

{

if (string.IsNullOrEmpty(userName))

throw new HttpException(404, "Пользователь не найден");

MembershipProvider mp = Membership.Provider;

MembershipUser user = mp.GetUser(userName, false);

if (user == null)

throw new HttpException(404, "Пользователь не найден");

string userGuidString = ((Guid) user.ProviderUserKey).ToString();

string fileName = userGuidString + ".png";

return File(fileName, "image/png");

}

Обратите внимание, что для возвращения результата типа FileResultв примере используется стандартный метод контроллера File, который упрощает возврат результата в виде FileResult. Методу Fileпередается два параметра: путь к возвращаемому файлу и его MIME-тип, который в данном случае для PNG-файла равен image/png.

В MVC Framework существует еще один класс для работы с файлами — класс FileContentResult, который наследует от FileResultи позволяет возвращать данные не на основании пути к файлу, а с помощью существующего потока данных, который может генерироваться в самом действии.

RedirectResult и RedirectToRouteResult

Важным свойством MVC Framework является возможность перенаправлять запрос на другие действия контроллеров либо другие URL-адреса. Для этого в MVC встроены механизмы RedirectResultи RedirectToRouteResult, которые наследуют от ActionResultи являются допустимыми результатами работы любого действия.

RedirectResultпредназначен для того, чтобы возвратить результат пользователю в виде перенаправления на заданный адрес URL. У RedirectResultесть только одно свойство, которое инициализируется через конструктор, — Url, оно указывает строку адреса, на которую будет перенаправлен пользователь в ответ на запрос. Контроллеры MVC содержат стандартный метод Redirect, который формирует ответ в виде RedirectResult. В следующем фрагменте приведено действие, результатом которого является перенаправление пользователя на сайт http://www.asp.net/mvc/:

public ActionResult GetAspNetSite()

{

return Redirect(" http://www.asp.net/mvc/");

}

RedirectToRouteResultвыполняет схожую по смыслу с RedirectResultлогику, но перенаправление вызова RedirectToRouteResultпроизводится только на основании маршрутов таблицы маршрутизации. RedirectToRouteResultимеет два конструктора, с разным числом параметров, всего параметров два:

routeName— указывает наименование маршрута, на который нужно выполнить перенаправление запроса;

routeValues— указывает набор значений параметров маршрута типа RouteValueDictionary, с помощью которых производится поиск маршрута и выполняется перенаправление.

Для упрощения работы с RedirectToRouteResultмеханизм MVC реализует для контроллеров, наряду с методами RedirectToRoute, набор стандартных методов RedirectToAction, которые призваны облегчить формирование перенаправления вызова на другие действия или контроллеры. Например, следующий фрагмент кода перенаправляет вызов из текущего действия в действие Indexтекущего контроллера:

return RedirectToAction("Index");

При использовании RedirectToActionможно указывать и контроллер, в который требуется перенаправить вызов, кроме того, можно указать набор значений параметров маршрута типа RouteValueDictionary. Следующий пример кода перенаправит вызов на действие Indexконтроллера AccountController:

return RedirectToAction("Index", "Account");

ContentResult

ContentResult— это весьма простая реализация ActionResult, которая предназначена для того, чтобы в ответ на запрос передавать любой пользовательский строковый набор данных. Для реализации логики у ContentResultесть три свойства:

ContentType— MIME-тип передаваемых в ответ на запрос данных;

ContentEncoding— кодировка данных;

Content— строка данных для передачи в ответ на запрос.

Благодаря ContentResultразработчик получает возможность генерировать ответы на запросы в любом виде, который можно представить в виде строки текста. Этот тип ActionResultможет быть полезен при работе с механизмом RenderAction. RenderAction— это часть библиотеки MVCContrib, которая содержит расширения MVC Framework, не вошедшие в основной функционал. RenderActionпозволяет представлению вывести в месте вызова результат выполнения действия. При таком применении результат типа ContentResultподходит более всего. Для упрощения контроллеры содержат специальный метод Content, который возвращает значение типа ContentResult.

EmptyResult

Последний из рассмотренных стандартных вариантов ActionResult— это EmptyResult. Этот механизм предназначен для того, чтобы в ответ на запрос не возвращать ничего. Переопределенный в EmptyResultметод ExecuteResultне содержит ни строчки кода.

Создание своей реализации ActionResult

Важной особенностью механизма ActionResultявляется то, что вы можете создать свой собственный вариант, который будет формировать результат в том виде, который вам нужен. Например, вы можете разработать класс, наследующий ActionResult, который будет возвращать клиентам результаты запроса в виде XML-разметки. Классическим примером создания своего варианта ActionResultявляется реализация класса, который на запрос пользователя создает ответ в виде RSS-ленты. Продемонстрируем реализацию такого класса, добавив к нашему контроллеру AdminControllerдействие Rss, которое будет возвращать пользователю RSS-ленту со списком зарегистрированных пользователей.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Гайдар Магдануров читать все книги автора по порядку

Гайдар Магдануров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




ASP.NET MVC Framework отзывы


Отзывы читателей о книге ASP.NET MVC Framework, автор: Гайдар Магдануров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x