Как происходит подготовка к использованию движка представления для его последующего применения для визуализации других результатов запроса?
При вызове метода 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!