Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 13486|Răspunde: 0

[ASP.NET] @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderActi...

[Copiază linkul]
Postat pe 19.07.2015 23:37:53 | | |
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.





Precedent:ASP.NET---- implementează un buton de click sau un link pentru a apărea dialogul de autentificare
Următor:Setează CheckBoxList să nu înfășoare linia
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com