Что такое вид двигателя? Что это на самом деле делает? - PullRequest
46 голосов
/ 29 ноября 2011

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

Итак, читая учебники в Интернете и в книгах, я довольно часто встречал термин «просмотр движка» .Я не знаю что это.

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

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

Ответы [ 10 ]

52 голосов
/ 29 ноября 2011

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

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

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

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

Здесь, на SO, есть хорошее сравнение движков представления asp.net .

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

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

Я бы сейчас выбрал Razor.

8 голосов
/ 29 ноября 2011

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

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

Например, кодовый блок в ASPX может выглядеть так:1007 * В то время как эквивалент Razor будет выглядеть так:

@foreach(var item in Model) {
    <tr>
        <td>@item.Name</td>
    </tr>
}
4 голосов
/ 10 января 2014

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

  1. ASPX

  2. Бритва

  3. Свеча

  4. NHaml

  5. NDJango

  6. Hasic

  7. Brail

  8. Bellevue

  9. Острые плитки

  10. Шаблон строки

  11. Wing Beats

  12. SharpDOM

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

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

4 голосов
/ 29 ноября 2011

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

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

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

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

2 голосов
/ 30 ноября 2016

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

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

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

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

3. Razor View Engine не язык, это синтаксис разметки.Символ

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

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

2 голосов
/ 06 января 2016

Я прочитал описательный пост на 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 view engine.

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

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

.aspx, для представлений, аналогичных страницам веб-форм. .ascx, для частичных представлений и шаблона редактора, как пользовательские элементы управления. .master, для макетов и мастер-страниц, как и мастер-страницы в веб-формах.

  • Нет поддержки TDD (Test Driven Development).
  • Механизм веб-форм не предотвращает атаки XSS, означает, что любой сценарий сохранен в базе данных будет запущен при отображении страницы
  • Синтаксис: <%: Html.ActionLink («Домой», «Индекс»)%>

Razor View Двигатель:

  • Razor View Engine - это усовершенствованный механизм просмотра, доступный в MVC 3.0 и более поздние версии
  • Пространство имен для ASPX view Engine - Web.Razor.
  • Расширение файла для этого механизма просмотра - .cshtml (Razor C #), для представлений, Частичные представления, шаблон редактора и страницы макета. .vbhtml (бритва VB.NET), для видов, частичных видов, шаблонов редактора и страниц макета.
  • Поддержка TDD (разработка через тестирование).
  • Razor Engine немного медленнее, чем Web Form Engine.
  • Razor Engine предотвращает атаки XSS (межсайтовый скриптинг) перед рендерингом для просмотра он кодирует скрипт или HTML-теги, такие как <,>.
  • Синтаксис Razor прост для понимания и намного проще, чем веб-форма синтаксис. Razor использует символ @, чтобы код был похож на:

    @Html.ActionLink («Домой», «Индекс»)

2 голосов
/ 24 августа 2014

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

1) ASPX

2) Бритва

3) Искра

4) NHaml

5) NDJango

6) Hasic

7) Brail

2 голосов
/ 24 февраля 2014

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

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

1 голос
/ 24 ноября 2017

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

Jade (Pug)
express-handlebars
ejs
React

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

0 голосов
/ 31 марта 2018

Два двигателя просмотра:

ASPX

Механизм просмотра ASPX, сценарий на стороне сервера заключен в [%%] .ASPX - это его расширение.

Бритва

Бритву мы используем @. Возможно переключение между HTML и кодом. Бритва Просмотр расширений .CSHTML и .VBHTML

...