Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Урок 8. View, Razor, страница ошибки.






Цель: Научиться делать вывод данных в html, использование Razor. Helperы. PageableData. Динамические формы. RedirectToLogin, RedirectToNotFoundPage. Страница ошибки. RssActionResult.

Основа

Итак, рассмотрим как устроена часть View.

В контроллере все action-методы возвращают тип ActionResult. И для вывода результата мы используем:

return View(modelData);

Основными параметрами View может быть:

· Имя, обычно оно совпадает с именем action-метода. В случае если надо вызвать иной по имени View, то используется конструкция return View(“ViewName”, modelData).

· Данные для отображения во View. Необязательный параметр. При передаче во View этот объект данных будет обозначаться Model. Для связывания типа данных во View указывается ожидаемый тип данных:

@model LessonProject.Model.User

· Layout. Необязательный параметр. При указании этого параметра по данной строке найдется страница-контейнер и вызовется. View-часть будет обработана методом RenderBody()

Layout = " ~/Areas/Default/Views/Shared/_Layout.cshtml"

В _Layout.cshtml:

< /div>

 

@RenderBody()

 

< div id=" PopupWrapper" > < /div>

 

Выбор, какой же View использовать происходит следующим образом:

· Ищется в папке /Areas/[Area]/Views/[ControllerName]/

· Ищется в папке /Areas/[Area]/Views/Shared/

· Ищется в папке /Views/[ControllerName]/

· Ищется в папке /Views/Shared/

приступим к изучению.

Razor

При создании View есть выбор между двумя движками: ASPX и Razor. Первый мы не будем использовать в дальнейшем, поэтому поговорим о Razor.

 

ASPX был громозким движком с тегами < % %> для выполнения кода и < %: %> для вывода данных.

Razor использует конструкцию @Model.Name. Т.е. всё, что начинается с @ переводит в режим или исполнения кода, или вывода данных @foreach() {…}, или @if() { … } else { … }:

@if (Model.Any())

{

< p> Список< /p>

}

 

@foreach (var role in Model)

{

< div class=" item" >

< span class=" id" >

@role.ID

< /span>

< span class=" name" >

@role.Name

< /span>

< span class=" Code" >

@role.Code

< /span>

< /div>

}

Внутри { } находятся теги – это маркер того, что это шаблон. Для простого выполнения кода внутри шаблона используем структуру @{ code }, для корректного вывода данных внутри атрибутов или текстом конструкция - @(string result):

@{

int i = 0;

}

@foreach (var role in Model)

{

< div class=" item @(i % 2 == 0? " odd": " ")" >

< span class=" id" >

@role.ID

< /span>

< span class=" name" >

@role.Name

< /span>

< span class=" Code" >

@role.Code

< /span>

< /div>

i++;

}

Чтобы вывести не теговый текст, нужно использовать псевдотеги < text> < /text>:

@foreach (var role in Model)

{

@role.Name< text>, < /text>

}

Для вывода html-текста – или должна возвращаться MvcHtmlString, или использовать конструкцию @Html.Raw(html-string-value), иначе текст будет выведен с экранированием тегов.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.