|
|
Postitatud 19.07.2015 23:37:53
|
|
|

1. RenderBody Razori mootoris puudub "põhileht", selle asemel paigutatakse jagatud vaate kausta leht nimega "layout" (_Layout.cshtml). Sellel lehel näete sildis väidet: @RenderBody() Tegelikult toimib see sarnaselt põhilehe serveri juhtimisele: kui selle paigutuse lehel loodud vaade liidetakse, liidetakse vaate sisu paigutuslehega ning uue vaate sisu kuvatakse siltide vahel paigutuslehe @RenderBody() meetodi abil. See meetod ei vaja parameetreid ja võib ilmuda vaid korra. 2. RenderPage Nagu nime järgi näha, on see meetod lehekülje esitamine. Näiteks saab fikseeritud päise veebilehel paigutada eraldi jagatud vaatefaili ning seejärel kutsuda seda meetodit paigutuslehel järgmiselt: @RenderPage("~/Views/Shared/_Header.cshtml") Parameetritega @RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you") Helista lehele, et saada parameetrid: Lase parameetrid RenderPage() kaudu edastada. @PageData["param"] 3. RenderSection Paigutuslehel on ka sektsiooni mõiste, st kui sektsioon on defineeritud vaatemallis, saab seda esitada eraldi järgmiselt: @RenderPage("~/Views/Shared/_Header.cshtml") @RenderBody()
//模板里添加了一个节 @RenderSection("pea") Muidugi määratlege ka vaade sektsioon, vastasel juhul tekib erand: @section pea{
//do
} Et vältida erandeid puuduvate sektsioonide tõttu, võid RenderSection()-le anda teise argumendi: @RenderSection("Alammenüü", vale) või @if (IsSectionDefined("Alammenüü"))
{ @RenderSection("Alammenüü", vale)
} else
{ <p>Alammenüü sektsioon ei ole määratletud!</p>
}
4.@Html.Partial Partial loob iga kord oma TextWriteri eksemplari ja salvestab sisu mällu vahemällu salvestatud. Lõpuks saada kogu kirjutaja väljund MvcString objektile Enamasti kasutame @{ html.RenderPartial("detailsed"); mitte @Html. Osaline Erinevus RenderPage() ja RenderPartial() vahel. RenderPage() kutsed saavad seda kasutada ainult varasemate andmete edastamiseks. RenderPartial() saab kasutada vaateandmeid, mudelit ja muid andmeid. Erinevus Html.RenderPartiline'i ja Html.RenderAction'i vahel Html.RenderPartial sobib korduvate UserControlide jaoks ning seda tuleb kasutada ainult sisu renderdamiseks mudelite kaudu või UserControlide jaoks reklaamide jaoks. Html.RenderAction kutsub esmalt Controller's Action meetodi, kui see UserControl vajab andmebaasist andmeid hankimist, et renderdada (lugeda andmebaasi läbi Action), sobib see meetod selleks ajaks paremini. 5.Html.Partial("MyView") Tagasta katsevoog MvcHtmlStringina, järgides standardseid marsruutimisreegleid. Renderdab "MyView" vaate MvcHtmlStringiks. See järgib vaadete otsingu standardreegleid (st kontrolli praegust kausta ja seejärel jagatud kataust). Html.RenderPartial("MyView")
Sarnaselt Html.Partial()-le on erinevus selles, et see trükitakse otse lehele ilma vahemällu salvestamiseta. Teeb sama mis Html.Partial(), välja arvatud see, et kirjutab oma väljundi otse vastusevoogu. See on tõhusam, sest vaate sisu ei ole mälus puhverdatud. Kuid kuna meetod ei tagasta väljundit, siis @Html.RenderPartial("MyView") ei tööta. Sa pead kutsumise hoopis koodiplokki mähkima: @{Html.RenderPartial("MyView"); }. RenderPage("MyView.cshtml")
Tagastab erivaate teede, failinimede jms ja väljundite otse nagu Heml.RenderPartial() ilma vahemällu salvestamiseta. mudelimuutujaid saab edasi anda. Kuvab määratud vaate (mida nimetatakse tee ja failinime järgi, mitte vaate nime järgi) otse vastusevoogu, nagu Html.RenderPartial(). Sa võid vaatele lisada ükskõik millise mudeli, lisades selle teise parameetrina RenderPage("MyView.cshtml",MyModel)
Mina eelistan
@RenderPage("_LayoutHeader.cshtml")Lõpetan @{Html.RenderPartial("_LayoutHeader"); }Ainult sellepärast, et süntaks on lihtsam ja loetavam. Peale selle ei tundu funktsionaalsuse osas mingeid erinevusi olevat.
|
Eelmine:ASP.NET---- rakenda klõpsuga või lingi, et avada sisselogimisdialoogJärgmine:Sea CheckBoxList nii, et rida ei mähkiks
|