Создание и визуализация представления

Прежде всего нужно изменить метод действия Index.

public class HomeController : Controller

{public ViewResult Index() { return View ();}

Возвращая объект ViewResult из метода действия, мы тем самым указываем MVC, что нужно визуализировать представление. ViewResult создается посредством вызова метода View без параметров.

Это указывает платформе MVC, что для действия необходимо визуализировать представление по умолчанию. Если запустить приложение на этом этапе, легко убедиться, что платформа MVC пытается найти для использования представление по умолчанию.

Метод действия назван Index, и, платформа MVC пытается найти в папке Views файлы с этим именем.

Чтобы создать представление, щелкните правой кнопкой мыши на методе действия в файле кода

HomeController.cs (либо на имени метода, либо внутри тела метода) и выберите в контекстном меню пункт Add View. В результате откроется диалоговое окно Add View.

Снимите отметку с флажка Use a layout or master page. Visual Studio создаст новый файл представления Index.cshtml в папке Views/Home.

Расширение файла .cshtml обозначает представление С#, которое будет обработано механизмом визуализации Razor.

Добавим в файл Index.cshtml строку.

Hello, world (from the view)<‘body>

Добавленная строка вызывает отображение еще одного простого сообщения.

Помимо строк и объектов ViewResult из методов действия можно возвращать и другие результаты.

Добавление динамического вывода. Весь смысл применения платформы веб-приложений заключается в создании и отображении динамического вывода. В рамках платформы MVC создание определенных данных — задача контроллера, а их визуализации в виде HTML-кода — задача представления.

Данные передаются из контроллера в представление.

Один из способов передачи данных от контроллера представлению — использование объекта ViewBag. Он является членом базового класса Controller. Объект ViewBag — это динамический объект, которому можно присвоить произвольные свойства, делая эти значения доступными в любом впоследствии визуализируемом представлении. В примере демонстрируется передача таким способом ряда простых динамических данных.

Установка некоторых данных представления

//GET:/Ноте/

public 'ViewResult lndex()

{

int hour = DateTime.Now.Hour;

ViewBag.Greeting = hour < 12 ? "Good morning" : "Good afternoon"; return View();

}

Для отображения данных в представлении понадобится сделать нечто аналогичное.

Получение значения данных объекта ViewBag.

@ ViewBag.Greeting, world (from the view)

Добавленная строка— это блок кода Razor, который получает значение, содержащееся в свойстве Greeting объекта ViewBag. Выбор имени свойства Greeting не диктуется никакими особыми соображениями.

Его можно было бы заменить любым пользовательским именем свойства, и оно работало бы точно так же.

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

Представьте себе, что ваша подруга решила организовать новогоднюю вечеринку и попросила создать веб-сайт, который позволяет приглашенным ответить на приглашение по электронным каналам. Она высказала пожелание о наличии четырех основных компонентов:

  • •домашняя страница, отображающая информацию о вечеринке;
  • •форма, которая может использоваться для ответа на приглашение (repondez s’il vous plait — RSVP);
  • •форма утверждения RSVP, которая будет отображать страницу с выражением благодарности за внимание;
  • •средство отправки RSVP организатору вечеринки по электронной почте.

Первый пункт — в существующее представление можно добавить HTML-разметку, которая сообщает подробности о вечеринке.

@ViewBag.Greeting, world (from the view)Hello, world (from the view)

we're going to have an exciting party.

@HtmlActionLink("RSVP Now", "RsvpForm")

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >