Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 13486|Odgovoriti: 0

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

[Kopiraj povezavo]
Objavljeno na 19. 07. 2015 23:37:53 | | |
1. RenderBody
V Razor pogonu ni "glavne strani", temveč je stran z imenom "layout" (_Layout.cshtml) postavljena v mapo skupnega pogleda. Na tej strani boste v oznaki videli izjavo:
@RenderBody()
Pravzaprav deluje podobno kot strežniški nadzor na glavni strani: ko se ustvari pogled, ki temelji na tej strani, se vsebina pogleda združi s stranjo postavitve, vsebina novoustvarjenega pogleda pa se prikaže med oznakami preko metode @RenderBody() na strani postavitve.
Ta metoda ne zahteva parametrov in se lahko pojavi le enkrat.
2. RenderPage
Kot lahko sklepate iz imena, je ta metoda prikaz strani. Na primer, fiksno glavo na spletni strani lahko postavimo ločeno v skupno datoteko pogleda in jo nato pokličete na tej metodi na strani postavitve, kot sledi:
@RenderPage("~/Pogledi/Deli/_Header.cshtml")
S parametri
@RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you")
Pokličite stran, da dobite parametre:
Pridobite parametre, ki jih posreduje RenderPage().
@PageData["param"]
3. RenderSekcija
Postavitev strani vsebuje tudi koncept sekcije, kar pomeni, da če je sekcija definirana v predlogi pogleda, se lahko predstavi ločeno na naslednji način:
@RenderPage("~/Pogledi/Deli/_Header.cshtml")
@RenderBody()
//模板里添加了一个节
@RenderSection("glava")
Seveda določite tudi presek v pogledu, sicer bo prišlo do izjeme:
@section glava{
//do
}
Da preprečite izjeme zaradi manjkajočih sekcij, lahko RenderSection() uporabite še en argument:
@RenderSection("SubMenu", napačno)
ali
@if (IsSectionDefined("SubMenu"))
{
@RenderSection("SubMenu", napačno)
}
else
{
<p>Sekcija Podmenija ni določena!</p>
}
4.@Html.Partial
Partial vsakič ustvari svojo instanco TextWriterja in vsebino shrani v pomnilnik. Na koncu pošljite vse izhode pisalnika v objekt MvcString
Pogosteje kot ne uporabljamo @{ html.RenderPartial("podrobnosti"); namesto @Html. Delno
Razlika med RenderPage() in RenderPartial().
Klici RenderPage() ga lahko uporabijo le za prenos podatkov naprej.
RenderPartial() lahko uporablja viewdata, model in druge podatke.
Razlika med Html.RenderPartial in Html.RenderAction
Html.RenderPartial je primeren za ponavljajoče se UserControls in ga je treba uporabiti le za upodabljanje vsebine preko modelov ali za UserControls za oglase. Html.RenderAction najprej pokliče metodo Controller's Action; če ta UserControl potrebuje pridobitev podatkov iz baze podatkov za upodabljanje (branje baze podatkov skozi Action), je ta metoda za ta čas bolj primerna.
5.Html.Partial("MyView")
Vrni tok poskusov kot MvcHtmlString, po standardnih pravilih usmerjanja.
Prikazuje pogled "MyView" v MvcHtmlString. Sledi standardnim pravilom za iskanje pogledov (tj. preveri trenutni imenik, nato preveri skupni imenik).
Html.RenderPartial("MyView")

Podobno kot pri Html.Partial() je razlika v tem, da se vnaša neposredno na stran brez predpomnjenja. Naredi enako kot Html.Partial(), le da izhod zapiše neposredno v odzivni tok. To je bolj učinkovito, saj vsebina pogleda ni shranjena v pomnilniku. Vendar pa, ker metoda ne vrne nobenega izhoda, @Html.RenderPartial("MyView") ne deluje. Klic morate namesto tega zaviti v kodni blok: @{Html.RenderPartial("MyView"); }.
RenderPage("MyView.cshtml")

Vrne poseben pogled s potmi, imeni datotek itd. in izpiše neposredno kot Heml.RenderPartial() brez predpomnjenja. modelne spremenljivke se lahko prenašajo. Prikaza določen pogled (označen z imenom poti in datoteke namesto z imenom pogleda) neposredno v odzivni tok, podobno kot Html.RenderPartial(). V pogled lahko dodate katerikoli model, ki vam ustreza, tako da ga vključite kot drugi parameter
RenderPage("MyView.cshtml",MyModel)

Jaz imam raje
@RenderPage("_LayoutHeader.cshtml")Konec.
@{Html.RenderPartial("_LayoutHeader"); }Samo zato, ker je sintaksa lažja in bolj berljiva. Poleg tega se zdi, da funkcionalno ni nobenih razlik.





Prejšnji:ASP.NET---- dodati gumb za klik ali povezavo, da se odpre okno za prijavo
Naslednji:Nastavi CheckBoxList tako, da se vrstica ne ovija
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com