Общая характеристика представлений (Views): назначение, создание, вызов из контроллера. Строго типизированные представления. Примеры.



 

В ASP.NET MVC 5 представления - это файлы с расширением cshtml, которые содержат код пользовательского интерфейса в основном на языке html. Стандартноепредставление:

@{

Layout = null;

}

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="/>

<title>SomeView</title>

</head>

<body>

<div>

<h2>@ViewBag.Message</h2>

</div>

</body>

</html>

Строго типизированное представление– представление, которому сообщается тип объекта модели представления:

@model IEnumerable<BookStore.Models.Book>

@{

Layout = "~/Views/Shared/_Layout.cshtml";

}

<h3>Распродажа книг</h3>

<table>

<tr class="header"><td><p>Названиекниги</p></td>

<td><p>Автор</p></td>

<td><p>Цена</p></td><td></td>

</tr>

       @foreach (BookStore.Models.Book b in Model)

       {

<tr>

<td><p>@b.Name</p></td>

<td><p>@b.Author</p></td>

<td><p>@b.Price</p></td>

<td><p><a href="/Home/Buy/@b.Id">Купить</a></p></td>

</tr>

       }

</table>

Хотя представление содержит главным образом, код html, оно не является html-страницей. При компиляции приложения на основе требуемого представления сначала генерируется класс на языке C#, а затем этот класс компилируется.При компиляции создается класс, наследующий от класса System.Web.Mvc.WebViewPage<T>, где T - это класс модели, которая будет использоваться. Все действия данного класса заключены в методе Execute, в котором с помощью метода WriteLiteral обрабатываются все имеющиеся в представлении элементы разметки html.

Для создания нового представления выберем в проекте папку Views и в нем нажмем правой кнопкой на подкаталог Home и в появившемся списке выберем пункт Add -> View... (Представление). В окне добавления нового представления предлагается настроить целый ряд опций:

1. View Name: имя нового представления. После создания ему автоматически будет присваиваться расширение cshtml.

2. Template: шаблон нового представления. Мы можем выбрать из следующего списка шаблонов:

a. Empty (without model): создается пустое представление с начальной разметкой

b. Empty: также создается пустое представление, но теперь ниже мы можем выбрать модель, которая будет подключена в представлении с помощью директивы @model

c. Create: генерируется представление с формой для создания новых объектов модели. В этой форме для каждого свойства модели создается отдельное поле

d. Delete: генерируется представление с формой для удаления объектов модели. В этой форме для каждого свойства модели создается отдельное поле

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

f. Edit: генерируется представление с формой для редактирования имеющихся объектов модели. В этой форме для каждого свойства модели создается отдельное поле

g. List: создается представление, которое в таблице отображает все объекты из списка моделей. Для генерации списка объектов в данное представление необходимо передавать из метода контроллера значение типа IEnumerable<Тип_модели>. Представление также содержит ссылки на методы для выполнения операций создания/правки/удаления.

3. Model class: при выборе одной из предыдущих опций, кроме опции Empty (without model), нам становится доступно это поле, в котором мы можем указать модель для типизации представления. Такое представление будет считаться строго типизированным, то есть привязанным к одному классу модели

4. Data context class: также при выборе одной из предыдущих опций, кроме опции Empty (without model), нам становится доступно это поле, в котором мы можем выбрать класс контекста данных

5. Create as a partial view: позволяет создать частичное представление

6. Reference Script Libraries: эта опция показывает, будет ли представление автоматически подключать стандартный набор библиотек jQuery и прочих файлов JavaScript.

7. Use a layout page: эта опция указывает, будет ли использоваться мастер-страница или представление будет самодостаточным. После установки этой опции нам станет доступным нижнее поле, в котором можно выбрать мастер-страницу. Для движка Razor указание мастер-страницы не является обязательным, если вы собираетесь использовать мастер-страницу, определенную по умолчанию в файле _ViewStart.cshtml. Однако, если вы хотите переопределить мастер-страницу, то можете воспользоваться этой опцией.

 


Дата добавления: 2018-05-02; просмотров: 291; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!