See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 13486|Vastuse: 0

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

[Kopeeri link]
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 sisselogimisdialoog
Järgmine:Sea CheckBoxList nii, et rida ei mähkiks
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com