Подтвердить что ты не робот

Что такое механизм просмотра? Что это на самом деле?

Я начал изучать ASP.NET MVC3.

Итак, читая учебные пособия в Интернете и в книгах, я часто встречал этот термин "механизм просмотра". Я не знаю, что это.

Что это на самом деле?

Почему это имеет значение для меня вообще?

4b9b3361

Ответ 1

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

Например, ASP.NET поставляется с собственным механизмом просмотра из коробки. Это тот, где представления имеют множество тегов, таких как <% %> и <%: %>. Он использует расширение .aspx.

С ASP.NET MVC3 был добавлен еще один готовый механизм просмотра, Razor, который имеет больше привлекательный синтаксис, например <div>@Model.UserName</div>.

Выбор механизма просмотра важен, потому что набор функций движков просмотра совершенно другой. Например, поддержка поддержки файлов PDF; некоторые из них не могут использоваться вне веб-контекста (это верно для старого механизма просмотра ASP.NET), в то время как другие могут (например, Razor). "Оффлайн" рендеринг представлений пригодится, когда вы хотите создавать электронные письма HTML так же, как вы создаете свои представления, и эти письма должны быть отправлены от рабочего фона, а не из веб-приложения.

Здесь хорошее сравнение механизмов просмотра asp.net здесь на SO.

Хорошей новостью является то, что вы можете использовать несколько механизмов просмотра параллельно в ASP.NET MVC, хотя я бы не рекомендовал его, если это необходимо.

В движке Razor уже есть несколько замечательных точек расширения. Например, вы можете предоставить настраиваемый базовый класс представления, мощную концепцию, которая упрощает добавление большого количества функций в нужное место без необходимости связываться со всеми подробными деталями, с которыми вам придется справляться в противном случае.

В настоящее время я занимаюсь Razor.

Ответ 2

Механизм просмотра - это то, что отвечает за рендеринг вашего представления и превращение вашего кода в славный HTML. Таким образом, они несут прямую ответственность за то, КАК вам нужно писать код в своих представлениях.

В основном в двух случаях вам нужно заботиться: ASPX и Razor. Razor, на мой взгляд, намного изящнее и проще в использовании, за счет поддержки только в MVC3.

Например, блок кода в ASPX может выглядеть так:

<% foreach(var item in Model) { %>
    <tr>
        <td><%: item.Name %></td>
    </tr>
<% } %>

В то время как эквивалент Razor будет выглядеть так:

@foreach(var item in Model) {
    <tr>
        <td>@item.Name</td>
    </tr>
}

Ответ 3

Механизм просмотра - это то, что MVC использует для поиска и рендеринга представлений, запрашиваемых у контроллера. Если вас устраивает маршрутизация по умолчанию, вам, вероятно, не нужно ничего менять, но, допустим, вы хотели, чтобы ваши общие файлы, обычно расположенные в корневом каталоге /views/shared, вместо этого располагались в корневом/общем виде, пользовательский просмотр - это то, что вы будете необходимо создать, чтобы иметь возможность сделать это.

Здесь вы можете увидеть, как создать просмотр:

http://coderjournal.com/2009/05/creating-your-first-mvc-viewengine/

Механизм просмотра также отвечает за визуализацию представления, но поскольку вы просто изучаете MVC, вам, вероятно, не нужно будет еще больше изменять функциональность рендеринга

Ответ 4

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

  • ASPX

  • Бритва

  • Спарк

  • NHaml

  • NDJango

  • Hasic

  • Brail

  • Bellevue

  • Sharp Tiles

  • Шаблон строки

  • Wing Beats

  • SharpDOM

В настоящее время большинство разработчиков предпочитают использовать механизм просмотра Razor, поскольку он обеспечивает очень удобный способ программирования. Все эти механизмы просмотра могут не поддерживать ASP.NET MVC.

Более подробную информацию вы можете найти в этой статье.

Ответ 5

View Engine работает внутри приложения для рендеринга HTML-страницы в браузере или для пользователя. Он может содержать теги HTML, серверные элементы управления и некоторый язык программирования.

Razor является предпочтительным механизмом просмотра для структуры MVC4.

Ответ 6

В ASP.Net MVC механизм просмотра работает между вашим представлением и браузером, чтобы обеспечить корректный вывод HTML в ваш браузер, рассматривая вывод, предоставленный вашим представлением. Существует много типов механизмов просмотра.

1) ASPX

2) Бритва

3) Спарк

4) NHaml

5) NDJango

6) Hasic

7) Brail

Ответ 7

Я прочитал описательный пост в http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp-net-mvc/

Механизм просмотра дает возможность отображать HTML из вашего представления в браузер.

Существует много механизмов просмотра, поддерживаемых ASP.NET MVC, но наиболее широко используемыми механизмами просмотра являются

  • Механизм просмотра веб-форм/ASPX.
  • Механизм просмотра Razor.

Механизм просмотра формы веб-формы/механизм просмотра ASPX:

  • Web View View Engine/ASPX View Engine - механизм просмотра по умолчанию для проекта MVC Asp.net. Он доступен из MVC 1.0
  • Пространство имен для Web Form Engine - это Web.Mvc.WebFormViewEngine
  • Расширение файла для этого механизма просмотра аналогично веб-форме как:

.aspx, для представлений, как и страницы веб-формы. .ascx, для Partial Views и Editor Template так же, как User Controls. .master, для Layout и Master Pages, так же как и Master Pages в Web Forms.

  • Нет поддержки TDD (Test Driven Development).
  • Web Form Engine не предотвращает атак XSS, означает, что любой script сохранен в базе данных будут запущены при рендеринге страницы
  • Синтаксис: <%: Html.ActionLink( "Главная", "Индекс" )% >

Механизм просмотра Razor:

  • Razor View Engine - это усовершенствованный механизм просмотра, доступный с помощью MVC 3.0 и более поздние версии
  • Пространство имен для представления ASPX Engine - это Web.Razor.
  • Расширение файла для этого механизма просмотра -.cshtml(Razor С#), для представлений, Частичные виды, Шаблон редактора и страницы макета..vbhtml(Razor VB.NET), для представлений, частичных представлений, шаблонов редактора и страниц макета.
  • Поддержка TDD (Test Driven Development).
  • Razor Engine немного медленнее по сравнению с движком Web-форм.
  • Razor Engine предотвращает атаки XSS (Cross-Site Scripting Attacks) означает он кодирует теги script или html, такие как <, > перед визуализацией для просмотра.
  • Синтаксис бритвы прост для понимания и много чистого, чем веб-форма синтаксис. Razor использует символ @, чтобы сделать код следующим:

    @Html.ActionLink( "Главная", "Индекс" )

Ответ 8

View Engine отображает представление в HTML-форму браузера. Если мы говорим о приложении MVC в .NET Framework, он поддерживает следующие 2 механизма просмотра:

1. Razor View Engine 2. Веб-форма/ASPX View Engine

Различия: 1. Razor View Engine использует макеты, но механизм просмотра ASPX использует мастер-страницы.

2. Razor View Engine использует частичную страницу, но механизм просмотра ASPX использует Web User Control.

3. Механизм просмотра Razor не является языком, это синтаксис разметки.

4. @символ используется в Razor Engine для написания кода. @Html.ActionLink( "Вход", "LoginView" ) '<%: разделители используют в качестве начальной точки и'% > используют в качестве конечной точки. Вы можете написать код между ними в ASPX Engine.

5. Razor View Engine имеет расширение .cshtml(с расширением С#) и .vbhtml(с VB) для представлений, макетов и частичных представлений. ASPX View Engine имеет аналогичное расширение, например, в простом веб-приложении, таком как .aspx для представлений,.acsx для UserControls и .master для мастер-страниц.

Ответ 9

До сих пор каждый ответ был связан с ASP.NET. Если вы ищете механизм просмотра для nodejs, то некоторые из следующих вариантов:

Jade (Pug)
express-handlebars
ejs
React

Там есть весь список из них, который я нашел в https://github.com/expressjs/express/wiki#template-engines, но, похоже, это те, которые я слышал о самых,