2011-11-29 27 views

risposta

44

Il motore di visualizzazione è responsabile della creazione di HTML dal tuo visualizzazioni. Le viste sono di solito una sorta di mix di HTML e un linguaggio di programmazione. Lo schema dietro la maggior parte di questi è chiamato two-step view.

Ad esempio, ASP.NET viene fornito con il proprio motore di visualizzazione fuori dalla scatola. Questo è quello in cui le visualizzazioni hanno molti tag come <% %> e <%: %>. Usa l'estensione del file .aspx.

Con ASP.NET MVC3, è stato aggiunto un altro motore di visualizzazione pronto all'uso, Razor, che presenta una sintassi più accattivante, ad es. <div>@Model.UserName</div>.

La scelta del motore di visualizzazione è importante, perché i set di funzionalità dei motori di visualizzazione sono molto diversi. Alcuni supportano il rendering in file PDF, ad esempio; alcuni non possono essere utilizzati al di fuori di un contesto Web (questo è vero per il vecchio motore di visualizzazione ASP.NET), mentre altri possono (ad esempio Razor). Il rendering di viste "offline" è utile quando si desidera creare email HTML nello stesso modo in cui si costruiscono le visualizzazioni e tali e-mail devono essere inviate da un lavoratore in background piuttosto che da un'applicazione web.

C'è un bel confronto di asp.net view engines qui su SO.

La buona notizia è che è possibile utilizzare più motori di visualizzazione in parallelo in ASP.NET MVC, anche se non lo consiglierei se non necessario.

Ci sono già alcuni punti di estensione molto belli nel motore Razor. Ad esempio, puoi fornire una classe di base di visualizzazione personalizzata, un concetto potente che semplifica l'aggiunta di molte funzionalità nel posto giusto, senza dover confondere con tutti i dettagli più grossi che altrimenti dovresti affrontare.

Attualmente mi piacerebbe andare a Rasoio.

+0

Potete per favore mostrarmi (mandami un collegamento) su come renderizzare ViewEngines offline? – gillyb

+1

@gillyb: la soluzione migliore è http://razorengine.codeplex.com/, che consente di visualizzare le visualizzazioni Razor al di fuori di un contesto ASP. – mnemosyn

2

Un motore di visualizzazione è ciò che MVC utilizza per trovare e visualizzare le viste richieste dal controller. Se sei soddisfatto del routing predefinito probabilmente non avrai bisogno di cambiare nulla, ma diciamo che volevi che i tuoi file condivisi di solito si trovassero in root/views/shared invece che fossero localizzati in root/common, un custom viewengine è quello che vuoi bisogno di creare per essere in grado di farlo.

Qui potete vedere come costruire un viewengine:

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

Il motore di visualizzazione è anche responsabile per il rendering della vista, ma come si sta solo imparando MVC voi probabilmente non c'è bisogno di modificare il rendering Funzionalità ancora

7

Il motore di visualizzazione è ciò che è responsabile per il rendering della vista e la conversione del codice in glorioso HTML. In quanto tali, sono direttamente responsabili di COME è necessario scrivere codice nelle viste.

Ci sono fondamentalmente due quelli che devi preoccuparti: ASPX e Razor. Il rasoio è, a mio parere, molto più elegante e facile da usare, al costo di essere supportato solo in MVC3.

Per esempio, un blocco di codice in ASPX potrebbe essere simile a questo:

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

considerando che il rasoio equivalente sarà simile a questa:

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

In MVC, il motore di visualizzazione è quello che funziona tra la vista e il browser per fornire un output HTML valido al browser compilando il codice all'interno della vista. Ci sono molti motori di vista disponibili e alcuni di essi sono i seguenti:

  1. ASPX

  2. Razor

  3. Spark

  4. NHaml

  5. NDJango

  6. Hasic

  7. Brail

  8. Bellevue

  9. Sharp Tiles

  10. String Template

  11. Ala Beats

  12. SharpDOM

Attualmente la maggior parte degli sviluppatori preferisce utilizzare Razor View Engine in quanto fornisce un modo molto conveniente di programmazione. Tutti questi motori di visualizzazione potrebbero non supportare ASP.NET MVC.

Per ulteriori dettagli è possibile visitare this article.

1

View Engine funziona all'interno dell'applicazione per rendere la pagina HTML al browser o all'utente. Può contenere tag HTML, controlli server e un linguaggio di programmazione.

Il rasoio è il motore di visualizzazione preferito per la struttura MVC4.

1

In ASP.Net MVC, il motore di visualizzazione è quello che funziona tra la vista e il browser per fornire un output HTML valido al browser considerando l'output fornito dalla vista. Esistono molti tipi di motori di visualizzazione.

1) ASPX

2) Razor

3) Spark

4) NHaml

5) NDJango

6) Hasic

7) Brail

1

Ho letto un messaggio descrittivo a http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp-net-mvc/

Il motore di visualizzazione consente di rendere l'HTML dalla visualizzazione al browser.

Ci sono molti motori di vista supportati da ASP.NET MVC, ma i motori di vista più utilizzati sono

  • modulo Web/motore di visualizzazione ASPX.
  • Razor view engine.

Web motore di visualizzazione forma/ASPX vista del motore:

  • Web Vista modulo Motore/ASPX View Engine è il motore di visualizzazione predefinita per il progetto Asp.net MVC. È disponibile da MVC 1.0
  • Lo spazio dei nomi per il Web Form Engine è Web.Mvc.WebFormViewEngine
  • estensione
  • File per questa vista del motore è simile a Web Form come:

aspx, per Visualizzazioni proprio come Pagine Web Form. .ascx, per viste parziali & Modello di editor come i controlli utente. .master, per Layout e pagine master come pagine master in Web Form.

  • Nessun supporto per TDD (Test Driven Development).
  • Web Form Engine non impedisce gli attacchi XSS, qualsiasi script salvato nel database sarà licenziato durante il rendering della pagina
  • Sintassi: <%: Html.ActionLink (“Home”, “Indice”)%>

Razor View Engine:

  • The Razor View Engine è un motore di visualizzazione avanzata, disponibile con MVC 3.0 e versioni successive
  • 012.
  • Spazio dei nomi per ASPX view Engine is Web.Razor.
  • L'estensione file per questo motore di visualizzazione è .cshtml (Razor C#), per le viste, Visualizzazioni parziali, modello di editor e pagine di layout. .vbhtml (Razor VB.NET), per viste, viste parziali, modello di editor e pagine di layout.
  • Supporta TDD (Test Driven Development).
  • Razor Engine è un po 'lento rispetto al motore di modulo Web.
  • Razor Engine previene gli attacchi XSS (Cross-Site Scripting Attacks) significa codifica lo script oi tag html come <,> prima del rendering per la visualizzazione.
  • La sintassi del rasoio è di facile comprensione e molto più pulita della sintassi del modulo Web . Rasoio usa simbolo @ per rendere il codice come come:

    @ Html.ActionLink (“Home”, “Indice”)

1

View Engine rende la visualizzazione in forma HTML al browser. Se parliamo di un'applicazione MVC in .Net Framework, supporta i seguenti 2 motori di vista:

1. Razor View Engine 2. Web Form/ASPX View Engine

Differenze: 1. Razor View Engine utilizza Layout ma il motore di visualizzazione ASPX utilizza le pagine master.

2. Razor View Engine utilizza una pagina parziale ma il motore di visualizzazione ASPX utilizza il controllo utente Web.

3. Il motore di visualizzazione del rasoio non è un linguaggio, È la sintassi di Markup.

4. Il simbolo @ utilizza in Razor Engine per scrivere il codice. @ Html.ActionLink ("Login", "LoginView") '<%:' i delimitatori utilizzano come punto di partenza e '%>' utilizzano come punto finale. È possibile scrivere il codice tra di loro in ASPX Engine.

5. Razor View Engine ha .cshtml (con C#) e .vbhtml (con VB) estensione per le viste, il layout e viste parziali. ASPX View Engine ha un'estensione simile a quella di una semplice applicazione Web come .aspx per le viste, .acsx per UserControls e .master per pagine master.

0

Finora ogni risposta è correlata a ASP.NET. Se siete alla ricerca di un motore di visualizzazione per nodejs, allora alcune delle seguenti sono opzioni:

Jade (Pug) 
express-handlebars 
ejs 
React 

C'è un intero elenco di loro che ho trovato su https://github.com/expressjs/express/wiki#template-engines ma quelli di cui sopra sembrano essere quelli che sento sulla maggior parte.

Problemi correlati