|
|
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 prijavoNaslednji:Nastavi CheckBoxList tako, da se vrstica ne ovija
|