Помощь в написании студенческих работ
Антистрессовый сервис

Передача данных из метода-действия в шаблон представлении

РефератПомощь в написанииУзнать стоимостьмоей работы

Другой способ передачи данных заключается в использовании свойства Model базового класса представления. В этом случае запись шаблона понятнее для чтения и передаваемые данные имееют конкретный тип. Пример передачи данных с помощью ViewBag можно посмотреть в описании метода-действия Index (рис. 4.34) и соответствующего ему представления (рис. 4.40). В данном представлении создается таблица (тэг… Читать ещё >

Передача данных из метода-действия в шаблон представлении (реферат, курсовая, диплом, контрольная)

Данные из метода-действия контроллера в представление могут передаваться следующими двумя основными способами:

  • • с помощью нетипизированного словаря ViewBag (или ViewData); вспомогательный способ передачи данных;
  • • с помощью объекта (модель), передаваемого через параметр метода ViewQ — основной способ передачи данных.
Передача данных с помощью объектов ViewData и ViewBag

Объекты ViewData и ViewBag доступны в методах контроллера и в представлениях и позволяют передавать данные из контроллера в представление. ViewData является обычной коллекцией, позволяющей для заданного ключа сохранить разные значения (простые или сложные). Например:

// использование ViewData.

ViewDatafPageTitle" ] = «Programming ASP.NET MVC» ;

Объект ViewBag позволяет динамически задавать ему произвольные свойства и присваивать им различные значения. Например, те же самые данные, что передавались в предыдущем примере с помощью ViewData, можно передать с помощью нового свойства объекта ViewBag:

// Using ViewBag.

ViewBag.PageTitle = «Programming ASP.NET MVC» ;

Пример передачи данных с помощью ViewBag можно посмотреть в описании метода-действия Index (рис. 4.34) и соответствующего ему представления (рис. 4.40). В данном представлении создается таблица (тэг.

), в которой будут показываться данные о книгах. Оператор @foreach задает цикл по элементам коллекции свойства ViewBag. Books, который был ранее создан в методе Index (int id) контроллера. На каждой итерации цикла свойства очередного элемента (b.Name, b. Author и b. Price) показываются в ячейках таблицы. В последней колонке таблицы показывается гиперссылка Купить, указывающая на адрес, по которому нужно выполнить переход для оформления покупки выбранной книги.

Не строго типизированное представление дли действия Index ().

Рис. 4.40. Не строго типизированное представление дли действия Index ().

В результате выполнения данного представления будет получена web-страница, показанная на рис. 4.41.

Результат выполнения представления, показанного на рис. 4.40.

Рис. 4.41. Результат выполнения представления, показанного на рис. 4.40.

Другой пример не строго типизированного представления для метода [HttpGet] Buy (int id) контроллера HomeController (рис. 4.35), использующего коллекцию ViewData, показан на рис. 4.42.

Не строго типизированное представление для действия [HttpGet] Buy (int id).

Рис. 4.42. Не строго типизированное представление для действия [HttpGet] Buy (int id).

Передача данных с помощью модели (строго-типизированные представления)

Другой способ передачи данных заключается в использовании свойства Model базового класса представления. В этом случае запись шаблона понятнее для чтения и передаваемые данные имееют конкретный тип.

В системе Razor для объявления в шаблоне представления типа передаваемого объекта используется директива @model. Например:

@model Bookstore.Models.Book.

или.

@using Bookstore.Models.

@model Bookstore.Models.Book.

Для получения доступа к объекту, переданному из методадействия контроллера нужно использовать свойство Model, которое определено в базовом классе WebViewPage (ViewPage для ASPX).

Для примера изменим метод Index контроллера HomeController (показанный на рис. 4.34), чтобы он использовал строго типизированное представление (рис. 4.43).

Описание действии Index контроллера Ноте, передающего данные в представление с помощью модели.

Рис. 4.43. Описание действии Index контроллера Ноте, передающего данные в представление с помощью модели.

Создадим для него строго типизированное представление, показанное на рис. 4.44.

Показать весь текст
Заполнить форму текущей работой