2011-11-29 28 views

Respuesta

44

El motor de vista es responsable de la creación de HTML a partir de su puntos de vista. Las vistas son generalmente una especie de confusión de HTML y un lenguaje de programación. El patrón detrás de la mayoría de estos se llama two-step view.

Por ejemplo, ASP.NET viene con su propio motor de vista fuera de la caja. Ese es el punto donde las vistas tienen muchas etiquetas como <% %> y <%: %>. Utiliza la extensión de archivo .aspx.

Con ASP.NET MVC3, se agregó otro motor de vista previa, Razor, que tiene una sintaxis más atractiva, p. <div>@Model.UserName</div>.

La elección del motor de visualización es importante, ya que los juegos de características de los motores de visualización son bastante diferentes. Algunos soportan el renderizado de archivos PDF, por ejemplo; algunos no se pueden usar fuera de un contexto web (esto es cierto para el antiguo motor de visualización ASP.NET), mientras que otros pueden (por ejemplo, Razor). La visualización "fuera de línea" de las vistas es útil cuando desea crear correos electrónicos HTML de la misma manera que construye sus vistas y esos correos electrónicos deben enviarse desde un trabajador en segundo plano en lugar de desde una aplicación web.

Hay una buena comparación de asp.net view engines aquí en SO.

La buena noticia es que puede usar múltiples motores de vistas en paralelo en ASP.NET MVC, aunque no lo recomendaría a menos que sea necesario.

Ya hay algunos puntos de extensión muy agradables en el motor Razor. Por ejemplo, puede proporcionar una clase base de vista personalizada, un concepto potente que facilita agregar una gran cantidad de funcionalidades en el lugar correcto sin tener que meterse con todos los detalles agresivos que tendría que enfrentar de otra manera.

Actualmente elegiría Razor.

+0

¿Puede mostrarme (enviarme un enlace) cómo puedo renderizar ViewEngines sin conexión? – gillyb

+1

@gillyb: su mejor opción es http://razorengine.codeplex.com/, que representa las vistas de Razor fuera de un contexto ASP. – mnemosyn

2

Un motor de vista es lo que MVC usa para encontrar y representar las vistas que está solicitando desde el controlador. Si está satisfecho con el enrutamiento predeterminado, probablemente no necesitará cambiar nada, pero digamos que quería que los archivos compartidos que generalmente se encuentran en la raíz/vistas/compartidos estén en su lugar en raíz/común, un viewengine personalizado es lo que usted Necesito crear para poder hacer eso.

Aquí se puede ver cómo construir un viewengine:

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

El motor de vista es también el encargado de mostrar la vista, sino como se acaba de aprender MVC probablemente no tendrá que modificar la prestación funcionalidad por el momento

7

El motor de visualización es el responsable de mostrar su vista y convertir su código en glorioso HTML. Como tales, son directamente responsables de CÓMO necesitas escribir el código en tus vistas.

Básicamente hay dos cosas que debe preocuparse: ASPX y Razor. Razor es, en mi opinión, mucho más elegante y fácil de usar, a costa de solo ser compatible con MVC3.

Por ejemplo, un bloque de código en ASPX podría tener este aspecto:

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

Mientras que la maquinilla de afeitar equivalente se verá así:

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

En MVC, el motor de Vista es el que funciona entre su Vista y el navegador para proporcionar resultados HTML válidos a su navegador mediante la compilación del código dentro de su Vista. Hay muchos motores de vista disponibles y algunos de ellos son los siguientes:

  1. ASPX

  2. Razor

  3. Spark

  4. NHaml

  5. NDJango

  6. Hasic

  7. Brail

  8. Bellevue

  9. afilados Azulejos

  10. Plantilla cadena

  11. Ala Beats

  12. SharpDOM

Actualmente, la mayoría de los desarrolladores prefieren utilizar el motor de visualización Razor, ya que proporciona una manera muy conveniente de programación. Todos estos motores de vista pueden no ser compatibles con ASP.NET MVC.

Para obtener más información, puede visitar this article.

1

View Engine funciona dentro de la aplicación para representar una página HTML en el navegador o para el usuario. Puede contener etiquetas HTML, controles de servidor y algún lenguaje de programación.

Razor es el motor de vista preferido para el armazón MVC4.

1

En ASP.Net MVC, el motor de Vista es el que funciona entre su vista y el navegador para proporcionar salida HTML válida a su navegador considerando la salida proporcionada por su vista. Hay muchos tipos de motores de visualización.

1) ASPX

2) Razor

3) Spark

4) NHaml

5) NDJango

6) Hasic

7) Brail

1

He leído una publicación descriptiva en http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp-net-mvc/

Ver motor le da la capacidad de representar el HTML de su vista en el navegador.

Hay muchos motores de opinión apoyada por ASP.NET MVC, pero los motores de vista más ampliamente utilizados son

  • formulario web motor de vista/ASPX.
  • Motor de vista de maquinilla de afeitar.

Web formulario de vista del motor/ASPX vista del motor:

  • Web Vista formulario Motor/ASPX Ver motor es el motor vista por defecto para el proyecto Asp.net MVC. Está disponible de MVC 1.0
  • El espacio de nombres para el motor de formularios Web es Web.Mvc.WebFormViewEngine
  • extensión del archivo
  • para esta vista motor es similar a la forma del Web como:

.aspx, por Vistas al igual Páginas de formularios web. .ascx, para vistas parciales & Plantilla del editor al igual que los controles del usuario. .master, para Layout y Master Pages al igual que Master Pages en Web Forms.

  • Sin soporte para TDD (Prueba de desarrollo).
  • Motor de Formulario no impide los ataques XSS significa cualquier secuencia de comandos guardados en la base de datos va a ser disparado mientras se renderiza la página
  • Sintaxis: <%: Html.ActionLink (“Inicio”, “Índice”)%>

Razor Ver motor:

  • la navaja Ver motor es un motor de vista avanzada, disponible con MVC 3.0 y versiones posteriores
  • Espacio de nombres para la vista ASPX El motor es Web.Razor.
  • Extensión de archivo para este Motor de vista es .cshtml (Razor C#), para Vistas, Vistas parciales, Plantilla de editor y Páginas de diseño. .vbhtml (Razor VB.NET), para Vistas, Vistas Parciales, Plantilla del Editor y Páginas de Diseño.
  • Admite TDD (desarrollo controlado por prueba).
  • Razor Engine es un poco lento en comparación con Web form Engine.
  • Razor Engine previene los ataques XSS (ataques de secuencias de comandos entre sitios) significa que codifica el script o las etiquetas html como <,> antes de mostrarlas.
  • La sintaxis de Razor es fácil de entender y mucho más limpia que la sintaxis del formulario web . Razor utiliza el símbolo @ para hacer el código como como:

    @ Html.ActionLink (“Inicio”, “Índice”)

1

Vista Motor representa la vista en formulario HTML al navegador. Si hablamos de una aplicación MVC en el .Net Framework, es compatible con los siguientes motores de 2 Ver:

1. Razor Ver Motor 2. Formulario Web/ASPX Vista Motor

Diferencias: 1. Razor View Engine utiliza diseños pero el motor de vistas ASPX usa páginas maestras.

2. Razor View Engine utiliza una página parcial, pero el motor de vista ASPX usa Web User Control.

3. Razor view engine no es un lenguaje, es la sintaxis de Markup.

4. @ 'El símbolo se usa en Razor Engine para escribir el código. @ Html.ActionLink ("Login", "LoginView") '<%:' los delimitadores se usan como punto de inicio y '%>' se usan como punto final. Puede escribir el código entre ellos en ASPX Engine.

5. Razor View Engine tiene extensión .cshtml (con C#) y .vbhtml (con VB) para vistas, diseño y vistas parciales. ASPX View Engine tiene una extensión similar a la de una aplicación web simple como .aspx para las vistas, .acsx para UserControls y .master para páginas maestras.

0

Hasta ahora, cada respuesta está relacionada con ASP.NET. Si usted está buscando un motor de vista de nodejs, a continuación, algunas de las siguientes son las opciones:

Jade (Pug) 
express-handlebars 
ejs 
React 

Hay toda una lista de los que he encontrado en https://github.com/expressjs/express/wiki#template-engines pero los anteriores parecen ser los que escucho acerca de la más.

Cuestiones relacionadas