1. RenderBody În motorul Razor, nu există o "pagină principală", ci o pagină numită "layout" (_Layout.cshtml) este plasată în folderul cu vizualizare partajată. Pe această pagină vei vedea o afirmație în etichetă: @RenderBody() De fapt, funcționează similar cu controlul serverului din pagina principală, când o vizualizare bazată pe această pagină de layout este creată, conținutul vizualizării este combinat cu pagina de layout, iar conținutul noii vizualizări este redat între etichete prin metoda @RenderBody() a paginii de layout. Această metodă nu necesită parametri și poate apărea o singură dată. 2. RenderPage După cum poți ghici după nume, această metodă este să prezinți o pagină. De exemplu, antetul fix dintr-o pagină web poate fi plasat separat într-un fișier de vizualizare partajată și apoi apelat în această metodă în pagina de layout, după cum urmează: @RenderPage("~/Views/Shared/_Header.cshtml") Cu parametri @RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you") Sună pagina pentru a obține parametrii: Fă ca parametrii să fie trimiși de RenderPage(). @PageData["param"] 3. Secțiunea de randare Pagina de layout are, de asemenea, conceptul de secțiune, adică, dacă o secțiune este definită într-un șablon de vizualizare, aceasta poate fi prezentată separat în următorul mod: @RenderPage("~/Views/Shared/_Header.cshtml") @RenderBody()
//模板里添加了一个节 @RenderSection("cap") Desigur, definiți și secțiunea în vizualizare, altfel va apărea o excepție: @section cap{
//do
} Pentru a preveni excepțiile cauzate de secțiuni lipsă, poți oferi lui RenderSection() un al doilea argument: @RenderSection("SubMeniu", fals) sau @if (IsSectionDefined("Submenu"))
{ @RenderSection("SubMeniu", fals)
} altfel
{ <p>Secțiunea SubMeniu nu este definită!</p>
}
4.@Html.Partial Partial își creează propria instanță de TextWriter de fiecare dată și stochează conținutul în memorie. În final, trimite toate ieșirile de scriitor către un obiect MvcString De cele mai multe ori, vom folosi @{ html.RenderPartial("details"); în loc de @Html. Parțial Diferența dintre RenderPage() și RenderPartial(). Apelurile RenderPage() îl pot folosi doar pentru a transmite date. RenderPartial() poate folosi viewdata, model și alte date. Diferența dintre Html.RenderPartial și Html.RenderAction Html.RenderPartial este potrivit pentru UserControl repetate și trebuie folosit doar pentru redarea conținutului prin modele sau pentru UserControls pentru reclame. Html.RenderAction va chema mai întâi metoda Action's Controller, dacă acest UserControl are nevoie să obțină date din baza de date pentru a fi redată (citind baza de date prin Action), această metodă este mai potrivită pentru această perioadă. 5.Html.Partial("MyView") Returnează un flux de încercare ca un MvcHtmlString, urmând regulile standard de rutare. Redă vizualizarea "MyView" într-un MvcHtmlString. Urmează regulile standard pentru căutarea vizualizărilor (adică verifică directorul curent, apoi verifică directorul Partajat). Html.RenderPartial ("MyView")
Similar cu Html.Partial(), diferența este că acesta este tastat direct în pagină fără a fi ascuns. Face același lucru ca Html.Partial(), cu excepția faptului că își scrie ieșirea direct în fluxul de răspuns. Acest lucru este mai eficient, deoarece conținutul vizualizării nu este stocat în memorie. Totuși, deoarece metoda nu returnează niciun rezultat, @Html.RenderPartial ("MyView") nu va funcționa. Trebuie să înfășori apelul într-un bloc de cod în schimb: @{Html.RenderPartial("MyView"); }. RenderPage("MyView.cshtml")
Returnează o vizualizare specială cu căi, nume de fișiere etc. și oferă direct ca Heml.RenderPartial() fără caching. variabilele modelului pot fi trecute. Redă vizualizarea specificată (identificată după cale și numele fișierului, nu după numele vizualizării) direct în fluxul de răspuns, cum ar fi Html.RenderPartial(). Poți furniza orice model dorești vizualizării incluzându-l ca al doilea parametru RenderPage("MyView.cshtml",MyModel)
Prefer
@RenderPage("_LayoutHeader.cshtml")Terminat @{Html.RenderPartial("_LayoutHeader"); }Doar pentru că sintaxa este mai ușoară și mai ușor de citit. În rest, nu pare să existe diferențe de funcționalitate.
|