Как происходит подготовка к использованию движка представления для его последующего применения для визуализации других результатов запроса?



При вызове метода View контроллер не производит рендеринг представления и не генерирует разметку html. Контроллер только готовит данные и выбирает, какое представление надо возвратить в качестве объекта ViewResult. Затем уже объект ViewResult обращается к движку представления для рендеринга представления в выходной результат.

Если ранее предыдущие версии ASP.NET MVC и Visual Studio по умолчанию поддерживали два движка представлений - движок Web Forms и движок Razor, то сейчас Razor в силу своей простоты и легкости стал единственным движком по умолчанию. Использование Razor позволило уменьшить синтаксис при вызове кода C#, сделать сам код более "чистым".

Здесь важно понимать, что Razor - это не какой-то новый язык, это лишь способ рендеринга представлений, который имеет определенный синтаксис для перехода от разметки html к коду C#.

Движки представлений реализуют интерфейс IViewEngine

namespace System.Web.Mvc

{

public interface IViewEngine

{

ViewEngineResult FindPartialView(ControllerContext controllerContext,

string partialViewName,

bool useCache);

ViewEngineResult FindView(ControllerContext controllerContext,

 string viewName,

string masterName,

bool useCache);

void ReleaseView(ControllerContext controllerContext, IView view);

}

}

Задача движка представлений заключается в преобразовании запросов к представлениям в объекты ViewEngineResult. Первые два метода в интерфейсе, FindView и FindPartialView, принимают параметры, в которых указывается запрос и обработавший его контроллер (объект ControllerContext), имя представления и его макет, а также сообщение о том, может ли движок представлений использовать предыдущий результат из кэша. Эти методы вызываются во время обработки ViewResult. Последний метод, ReleaseView, вызывается, когда представление больше не требуется.

Как происходит взаимодействие механизма Razor с движком представления? Как осуществляется конфигурация механизма Razor?

Если ранее предыдущие версии ASP.NET MVC и Visual Studio по умолчанию поддерживали два движка представлений - движок Web Forms и движок Razor, то сейчас Razor в силу своей простоты и легкости стал единственным движком по умолчанию. Использование Razor позволило уменьшить синтаксис при вызове кода C#, сделать сам код более "чистым".

Здесь важно понимать, что Razor - это не какой-то новый язык, это лишь способ рендеринга представлений, который имеет определенный синтаксис для перехода от разметки html к коду C#.

Использование синтаксиса Razor характеризуется тем, что перед выражением кода стоит знак @, после которого осуществляется переход к коду C#. Существуют два типа переходов: к выражениям кода и к блоку кода.

Например, переход к выражению кода:

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

Razor автоматически распознает, что Name - это свойство объекта b.

Также можно использовать стандартные классы и методы, например, выведем текущее время:

1 <h3>@DateTime.Now.ToShortTimeString()</h3>

Применение блоков кода аналогично, только знак @ ставится перед всем блоком кода, а движок автоматически определяет, где этот блок кода заканчивается:

1 2 3 4 @foreach (BookStore.Models.Book b in Model) { <p>@b.Name</p> }

Более того мы можем создавать блоки кода в представлении, создавать там переменные так же, как и в файле кода C#:

1 2 3 4 5 @{ string head = "Привет мир!!!"; head = head + " Добро пожаловать на сайт!"; } <h3>@head</h3>

Что такое частичное представление и для чего оно используется? Какая при этом роль механизма Razor?

Көп жағдайларда Razor дескрипторларының бірдей фрагменттерін HTML-аралығындғы әр түрлі орындарда қолдануы мүмкін. Мазмұнды қайталаудың орнына, жартылай ұсыныс қолдануға болады . Бұл басқа көріністерге енгізілуі мүмкін дескрипторлар мен белгілеулердің фрагменттері бар бөлек файл ретинде карау .

1) Жартылай ұсынысты MyPartial деп құрастырамыз.
/ Views Shared/ папкасын ашып,контекстік меню Add->View таңдаймыз.Visual Studio ортасы Add View терезесін ашамыз.View Name өрісінде MyPartial таңдап,Template ішіндегі Empty деңгейін қарастырамыз. Сонда Create as partial view көрінісі ретінде келесідей нәтиже шығады:

Бастапқыда бос болғанымен,Add кнопкасын басу арқылы Visual Studio-жа жартылай ұсыныс құрастырылады.

<div>

Жартылай ұсыныс мәтіне

@Html.ActionLink("Index", "Index"әдісіне сілтеме)

</div>

Мақсаты: HTML түзетулерін және Razor дескрипторларын көрсету кезіндегі мүмкіндігін көрсету болып табылады, сондықтан қарапайым хабарлама анықталды және ActionLink () әдісі шақырылды. Жартылай ұсыныс Html.Partial () көмекші әдісін шақыру арқылы қолданылады. Views / Common / List.cshtml файл файлына қажетті өзгерістер жасалды

@{

ViewBag.Title=”List”;

Layout=null;

}

<em>ұсыныс файлы <b>~/Views/Common/List.cshtml</b></em>

<br /><br />

@Html.Partial("MyPartial")

Жартылай ұсыныс файл атауы кеңейтімсіз көрсетіледі. Механизмін кәдімгі жартылай ұсыныстың жәй орындарда көрсетілімді іздейді,/Views/Home/ және/Views/Shared мысалы ретінде, Html.Partial () әдісі ұсыныс ішінде көрсетілген ,Home контроллер үшін.

Razor визуализация механизмі тақырыпты іздестіреді немесе кәдімгі және бейнелеу (~ / Views / <controller> және ~ / views / shared). Бұл дегеніміз, бөлек нұсқалардың мамандандырылған нұсқаларын жасауға, контроллерлер үшін , сондай-ақ жеке Shared деп аталатын атаумен қайта бөлуге болады. Бұл бөлек көрсетіле алады, бірақ жеке ұсынылған бөлімдердің бір бөлігі ұсынылған компоновака визуализациясын көрсетеді, сондықтан да деректердің жеткілікті мүмкіндігі бар.

URL-/Home/List ауықанна кейін келесі нәтиже

 


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

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






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