Ce este motorul de vizualizare? Ce face acesta de fapt? (Programare, C#, Asp.Net, Asp.Net Mvc, Viewengine)

Nawaz a intrebat.

Am început să învăț ASP.NET MVC3.

Astfel, în timp ce citeam tutoriale online și în cărți, am dat peste acest termen „motor de vizualizare” destul de des. Nu știu ce este.

Ce face de fapt?

De ce ar trebui să conteze pentru mine?

10 răspunsuri
mnemosyn

Motorul de vizualizare este responsabil pentru a crea HTML din vizualizările dvs. Vizualizările sunt de obicei un fel de amestec de HTML și un limbaj de programare. Modelul din spatele celor mai multe dintre acestea se numește vizualizare în doi pași.

De exemplu, ASP.NET vine cu propriul său motor de vizualizare din fabrică. Acesta este cel în care vizualizările au o mulțime de etichete precum <% %> și <%: %>. Acesta utilizează .aspx extensia de fișier.

Odată cu ASP.NET MVC3, a fost adăugat un alt motor de vizualizare out-of-the-box, Razor, , care are o sintaxă mai atrăgătoare, de ex. <div>@Model.UserName</div>.

Alegerea motorului de vizualizare este importantă, deoarece seturile de caracteristici ale motoarelor de vizualizare sunt destul de diferite. Unele acceptă redarea în fișiere PDF, de exemplu; unele nu pot fi utilizate în afara unui context web (acest lucru este valabil pentru vechiul motor de vizualizare ASP.NET), în timp ce altele pot (de exemplu, Razor). Redarea „offline” a vizualizărilor este utilă atunci când doriți să creați e-mailuri HTML în același mod în care construiți vizualizările, iar aceste e-mailuri ar trebui să fie trimise de la un lucrător de fundal și nu de la o aplicație web.

Există o comparație frumoasă a motoarelor de vizualizare asp.net aici pe SO.

Vestea bună este că puteți utiliza mai multe motoare de vizualizare în paralel în ASP.NET MVC, deși nu v-aș recomanda acest lucru decât dacă este necesar.

Există deja câteva puncte de extensie foarte bune în motorul Razor. De exemplu, puteți furniza o clasă de bază de vizualizare personalizată, un concept puternic care facilitează adăugarea multor funcționalități la locul potrivit, fără a fi nevoie să vă încurcați cu toate detaliile mărunte cu care ar trebui să vă descurcați altfel.

În prezent, aș opta pentru Razor.

Comentarii

  • Poți să-mi arăți (trimite-mi un link) cum pot reda ViewEngines offline ? –  > Por gillyb.
  • @gillyb: Cel mai bun pariu este razorengine.codeplex.com, , care redă vizualizările Razor în afara unui context ASP. –  > Por mnemosyn.
Andreas Eriksson

Motorul de vizualizare este cel care este responsabil de redarea vizualizării și de convertirea codului dvs. în HTML glorios. Ca atare, este direct responsabil pentru CUM trebuie să scrieți codul în vizualizările dvs.

În principiu, sunt două de care trebuie să vă pese: ASPX și Razor. Razor este, după părerea mea, mult mai elegant și mai ușor de utilizat, cu prețul de a fi suportat doar în MVC3.

De exemplu, un bloc de cod în ASPX ar putea arăta astfel:

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

În timp ce echivalentul Razor va arăta astfel:

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

Kasper Elbo

Un motor de vizualizare este ceea ce folosește MVC pentru a găsi și a reda vizualizările pe care le solicitați de la controler. Dacă sunteți mulțumit de rutarea implicită, probabil că nu va fi nevoie să schimbați nimic, dar să spunem că doriți ca fișierele partajate, aflate de obicei în root/views/shared, să fie localizate în root/common, va trebui să creați un motor de vizualizare personalizat pentru a putea face acest lucru.

Aici puteți vedea cum se construiește un viewengine:

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

Motorul de vizualizare este, de asemenea, responsabil pentru redarea vizualizării, dar, deoarece abia învățați MVC, probabil că nu va fi nevoie să modificați încă funcționalitatea de redare

Comentarii

Daryl

În MVC, motorul de vizualizare este cel care lucrează între vizualizare și browser pentru a furniza o ieșire HTML validă către browser prin compilarea codului din interiorul vizualizării. Există multe motoare de vizualizare disponibile, iar unele dintre ele sunt următoarele:

  1. ASPX

  2. Razor

  3. Spark

  4. NHaml

  5. NDJango

  6. Hasic

  7. Brail

  8. Bellevue

  9. Sharp Tiles

  10. Șablon de șiruri

  11. Wing Beats

  12. SharpDOM

În prezent, majoritatea dezvoltatorilor preferă să utilizeze motorul de vizualizare Razor, deoarece oferă un mod foarte convenabil de programare. Este posibil ca toate aceste motoare de vizualizare să nu fie compatibile cu ASP.NET MVC.

Pentru mai multe detalii, puteți vizita acest articol.

Comentarii

Harsha.Vaswani

View Engine funcționează în interiorul aplicației pentru redarea paginii HTML către browser sau către utilizator. Acesta poate conține etichete HTML, controale de server și un anumit limbaj de programare.

Razor este motorul de vizualizare preferat pentru cadrul MVC4.

shubhankar

În ASP.Net MVC, motorul de vizualizare este cel care lucrează între vizualizare și browser pentru a furniza o ieșire HTML validă către browser, luând în considerare ieșirea furnizată de vizualizare.Există mai multe tipuri de motoare de vizualizare.

1) ASPX

2)Razor

3)Spark

4) NHaml

5)NDJango

6) Hasic

7)Brail

Ganesh Todkar

Am citit un post descriptiv la http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp-net-mvc/

Motorul de vizualizare oferă posibilitatea de a reda HTML-ul din vizualizarea dvs. către browser.

Există multe motoare de vizualizare acceptate de ASP.NET MVC, dar cele mai utilizate motoare de vizualizare sunt următoarele

  • Motorul de vizualizare Web form / ASPX.
  • Motorul de vizualizare Razor.

Motor de vizualizare a formularelor web / motor de vizualizare ASPX:

  • Web Form View Engine / ASPX View Engine este motorul de vizualizare implicit pentru proiectul Asp.net MVC. Acesta este disponibil începând cu MVC 1.0
  • Spațiul de nume pentru Web Form Engine este Web.Mvc.WebFormViewEngine.
  • Extensia de fișier pentru acest View Engine este similară cu Web Form ca:

.aspx, pentru Vizualizări la fel ca și paginile Web Form..ascx, pentru Vizualizări parțiale & Șablonul editorului la fel ca și Controale utilizator..master, pentru Layout și Pagini Master la fel ca și Paginile Master din Web Form.

  • Nu există suport pentru TDD (Test Driven Development).
  • Web Form Engine nu previne atacurile XSS, ceea ce înseamnă că orice script salvat în baza de date va fi lansat în timpul redării paginii
  • Sintaxă : <%: Html.ActionLink(„Home”, „Index”) %>

Razor View Engine:

  • Razor View Engine este un motor de vizualizare avansat, disponibil cu MVC3.0 și versiunile ulterioare
  • Spațiul de nume pentru motorul de vizualizare ASPX este Web.Razor.
  • Extensia de fișier pentru acest motor de vizualizare este .cshtml (Razor C#), pentru vizualizări, vizualizări parțiale, șabloane de editor și pagini de prezentare. .vbhtml (RazorVB.NET), pentru vizualizări, vizualizări parțiale, șabloane de editor și pagini de prezentare.
  • Suportă TDD (Test Driven Development).
  • Razor Engine este puțin mai lent în comparație cu Web form Engine.
  • Razor Engine previne atacurile XSS (Cross-Site Scripting Attacks), adică codifică scriptul sau etichetele html precum <,> înainte de a fi redate în vizualizare.
  • Sintaxa Razor este ușor de înțeles și mult mai curată decât cea a formularelor web. Razor folosește simbolul @ pentru a face codul ca:

    @Html.ActionLink(„Home”, „Index”)

Santosh Rawat

View Engine redă vizualizarea în formă HTML în browser. Dacă vorbim despre o aplicație MVC în .Net Framework, aceasta suportă următoarele 2 motoare de vizualizare:

1. Motorul de vizualizare Razor2. Motor de vizualizare Web Form/ASPX

Diferențe :1. Motorul de vizualizare Razor folosește Layout-uri, dar motorul de vizualizare ASPX folosește pagini Master.

2. 2. Razor View Engine utilizează pagini parțiale, dar motorul de vizualizare ASPX utilizează Web User Control.

3. Motorul de vizualizare Razor nu este un limbaj, ci o sintaxă de marcare.

4. Simbolul „@” este utilizat în Razor Engine pentru a scrie codul. @Html.ActionLink(„Login”, „LoginView”)'<%:’ delimitatorii se utilizează ca punct de început și ‘ %>’ se utilizează ca punct de sfârșit. Puteți scrie codul între ele în ASPX Engine.

5. Razor View Engine are extensia .cshtml (cu C#) și .vbhtml (cu VB) pentru vizualizări, Layout și Vizualizări parțiale. 5. ASPX View Engine are o extensie similară cu cea dintr-o aplicație web simplă, cum ar fi .aspx pentru vizualizări, .acsx pentru UserControls și .master pentru Master Pages.

Allan Holbrook

Până acum, toate răspunsurile sunt legate de ASP.NET. Dacă sunteți în căutarea unui motor de vizualizare pentru nodejs, atunci unele dintre următoarele sunt opțiuni:

Jade (Pug)
express-handlebars
ejs
React

Există o listă întreagă pe care am găsit-o la adresa https://github.com/expressjs/express/wiki#template-engines dar cele de mai sus par a fi cele despre care aud cel mai des.

Sri rangini

Două motoare de vizualizare:

ASPX

Motorul de vizualizare ASPX, scriptul de pe partea serverului este înfășurat între [% % %].ASPX este extensia acestuia.

Razor

Razor folosim @.Comutarea între HTML și cod este posibilă.Razor View extention .CSHTML și .VBHTML

Comentarii

  • Sri, vă mulțumim că v-ați făcut timp să oferiți un răspuns. StackOverflow are un ghid util pentru a posta răspunsuri amănunțite și concise. Puteți consulta acest ghid și unele dintre celelalte răspunsuri postate aici pentru a vă face o idee despre ceea ce face ca un răspuns să iasă în evidență. –  > Por TGP1994.