Механизм просмотра в ASP.NET используется для перевода наших представлений в HTML и их рендеринга в браузер. По умолчанию ASP.Net поддерживает ASPX и Razor View Engine . Шаблоны механизма представления имеют другой синтаксис, чем реализация. В этой главе мы обсудим два наиболее важных движка представления:
-
ASPX View Engine, также известный как Web Form View Engine и
-
Razor View Engine
ASPX View Engine, также известный как Web Form View Engine и
Razor View Engine
Есть еще много сторонних движков, таких как Spark, Nhaml и т. Д.
ASPX View Engine
ASPX или Web Form Engine — это механизм представления по умолчанию для ASP.NET, который включается в ASP.NET MVC с самого начала.
-
Синтаксис, используемый для написания представления с помощью ASPX View Engine, такой же, как и синтаксис, используемый в веб-формах ASP.NET.
-
Расширения файлов также такие же, как и для веб-форм ASP.NET (например, .aspx, .ascx, .master).
-
ASPX использует «<% =%>» или «<%:%>» для отображения содержимого на стороне сервера.
-
Пространство имен для Webform Engine — System.Web.Mvc.WebFormViewEngine .
-
ASPX View Engine не делает ничего, чтобы избежать атак межсайтового скриптинга по умолчанию.
-
ASPX View Engine сравнительно быстрее, чем Razor View Engine.
Синтаксис, используемый для написания представления с помощью ASPX View Engine, такой же, как и синтаксис, используемый в веб-формах ASP.NET.
Расширения файлов также такие же, как и для веб-форм ASP.NET (например, .aspx, .ascx, .master).
ASPX использует «<% =%>» или «<%:%>» для отображения содержимого на стороне сервера.
Пространство имен для Webform Engine — System.Web.Mvc.WebFormViewEngine .
ASPX View Engine не делает ничего, чтобы избежать атак межсайтового скриптинга по умолчанию.
ASPX View Engine сравнительно быстрее, чем Razor View Engine.
Razor View Engine
Razor Engine — это усовершенствованный механизм просмотра, который был представлен в MVC3 . Это не новый язык, но это новый синтаксис разметки.
-
Синтаксис Razor основан на языке программирования C #.
-
Синтаксис Razor также поддерживает язык Visual Basic, и все, что мы будем делать с использованием C #, вы можете делать все это и в Visual Basic.
-
Пространство имен для Razor Engine — System.Web.Razor .
-
Razor использует символ «@» вместо «<%%>», как это используется в ASPX View Engine.
-
Расширение файла Razor «cshtml» для языка C #.
-
По умолчанию Razor View Engine кодирует html-теги или сценарии перед их отображением, чтобы избежать атак на межсайтовый скриптинг.
-
Razor View Engine работает медленнее по сравнению с ASPX View Engine.
Синтаксис Razor основан на языке программирования C #.
Синтаксис Razor также поддерживает язык Visual Basic, и все, что мы будем делать с использованием C #, вы можете делать все это и в Visual Basic.
Пространство имен для Razor Engine — System.Web.Razor .
Razor использует символ «@» вместо «<%%>», как это используется в ASPX View Engine.
Расширение файла Razor «cshtml» для языка C #.
По умолчанию Razor View Engine кодирует html-теги или сценарии перед их отображением, чтобы избежать атак на межсайтовый скриптинг.
Razor View Engine работает медленнее по сравнению с ASPX View Engine.
Синтаксические различия
Чтобы понять разницу в синтаксисе, давайте посмотрим на простой пример, который написан в механизмах представления ASPX и Razor. Ниже приведен фрагмент кода для механизма просмотра ASPX.
<%foreach (var student in Students){ %> <% if (student.IsPassed){ %> <% = student.FirstName%> is going to next grade. <% } else{ %> <% = student. FirstName %> is not going to next grade. <% } %> <% } %>
Ниже приведен пример кода, написанный на движке Razor View.
@foreach (var student in Students){ @if(student.IsPassed){ @student. FirstName is going to next grade. } else { @student. FirstName is not going to next grade. } }
Если вы посмотрите на оба приведенных выше фрагмента кода, написанных в синтаксисе ASPX и Razor, то вы можете ясно увидеть, что синтаксис Razor более чистый и простой по сравнению с синтаксисом ASPX. Одним из недостатков Razor является то, что он не поддерживается визуальными редакторами, такими как Dream Viewer.