Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 13486|Atsakyti: 0

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

[Kopijuoti nuorodą]
Paskelbta 2015-07-19 23:37:53 | | |
1. Atvaizdavimas
"Razor" variklyje nėra "puslapio šablono", o puslapis, vadinamas "išdėstymas" (_Layout.cshtml), dedamas į bendrai naudojamo rodinio aplanką. Šiame puslapyje žymoje matysite teiginį:
@RenderBody()
Tiesą sakant, jis veikia panašiai kaip serverio valdiklis puslapio šablone, kai sukuriamas rodinys, pagrįstas šiuo maketo puslapiu, rodinio turinys suliejamas su maketo puslapiu, o naujai sukurto rodinio turinys pateikiamas tarp etikečių naudojant maketo puslapio @RenderBody() metodą.
Šis metodas nereikalauja parametrų ir gali pasirodyti tik vieną kartą.
2. Atvaizduoti puslapį
Kaip galite atspėti iš pavadinimo, šis būdas yra pateikti puslapį. Pavyzdžiui, fiksuotą tinklalapio antraštę galima atskirai įdėti į bendrai naudojamo rodinio failą ir tokiu būdu iškviesti maketo puslapyje, kaip nurodyta toliau:
@RenderPage("~/Peržiūros/Bendrinama/_Header.cshtml")
Su parametrais
@RenderPage("~/Peržiūros/Bendrinama/_Header.cshtml",new{parm="mano",parm2="jūs")
Paskambinkite į puslapį, kad gautumėte parametrus:
Gaukite parametrus, kuriuos perduoda RenderPage().
@PageData["param"]
3. Atvaizduoti skyrių
Išdėstymo puslapyje taip pat yra skyriaus sąvoka, tai yra, jei skyrius yra apibrėžtas rodinio šablone, jis gali būti pateiktas atskirai tokiu būdu:
@RenderPage("~/Peržiūros/Bendrinama/_Header.cshtml")
@RenderBody()
//模板里添加了一个节
@RenderSection ("galva")
Žinoma, taip pat apibrėžkite skyrių rodinyje, kitaip įvyks išimtis:
@section galva{
//do
}
Norėdami išvengti išimčių dėl trūkstamų sekcijų, galite suteikti RenderSection() antrą argumentą:
@RenderSection("SubMenu", klaidinga)
arba
@if (IsSectionDefined("SubMenu"))
{
@RenderSection("SubMenu", klaidinga)
}
kitaip
{
<p>Submeniu skyrius neapibrėžtas!</p>
}
4.@Html.Partial
Dalinis kiekvieną kartą sukuria savo TextWriter egzempliorių ir talpykloje saugo turinį atmintyje. Galiausiai nusiųskite visą rašytojo išvestį į MvcString objektą
Dažniausiai naudojame @{ html.RenderPartial("details"); vietoj @Html.Dalinis
Skirtumas tarp RenderPage() ir RenderPartial().
RenderPage() iškvietimai gali jį naudoti tik ankstesniems duomenims perduoti.
RenderPartial() gali naudoti viewdata, modelį ir kitus duomenis.
Skirtumas tarp Html.RenderPartial ir Html.RenderAction
Html.RenderPartial tinka pakartotiniams UserControls ir turi būti naudojamas tik turiniui generuoti naudojant modelius arba UserControls reklamoms. "Html.RenderAction" pirmiausia iškvies valdiklio veiksmo metodą, jei šiam "UserControl" reikia gauti duomenis iš duomenų bazės, kad būtų galima atvaizduoti (perskaityti duomenų bazę per veiksmą), šis metodas yra tinkamesnis šiam laikui.
5.Html.Partial("Mano vaizdas")
Grąžinti bandymo srautą kaip MvcHtmlString, vadovaujantis standartinėmis maršruto parinkimo taisyklėmis.
Atvaizduoja "MyView" rodinį į MvcHtmlString. Jis laikosi standartinių peržiūros paieškos taisyklių (t.y. patikrinkite dabartinį katalogą, tada patikrinkite bendrinamą katalogą).
Html.RenderPartial("Mano rodinys")

Panašiai kaip Html.Partial(), skirtumas tas, kad jis įvedamas tiesiai į puslapį be talpyklos. Atlieka tą patį kaip Html.Partial(), išskyrus tai, kad jis įrašo savo išvestį tiesiai į atsakymo srautą. Tai efektyviau, nes rodinio turinys nėra buferis atmintyje. Tačiau kadangi metodas nepateikia jokios išvesties, @Html.RenderPartial("MyView") neveiks. Vietoj to turite įvynioti skambutį į kodo bloką: @{Html.RenderPartial("MyView"); }.
RenderPage("MyView.cshtml")

Pateikia specialų rodinį su keliais, failų vardais ir t. t., ir išveda tiesiogiai, pvz., Heml.RenderPartial() be talpyklos. modelio kintamieji gali būti perduoti. Atvaizduoja nurodytą rodinį (identifikuojamą pagal kelią ir failo vardą, o ne pagal rodinio pavadinimą) tiesiai į atsakymo srautą, pvz., Html.RenderPartial(). Galite pateikti bet kokį norimą modelį į rodinį, įtraukdami jį kaip antrą parametrą
RenderPage("MyView.cshtml",Mano modelis)

Man labiau patinka
@RenderPage("_LayoutHeader.cshtml")Virš
@{Html.RenderPartial("_LayoutHeader"); }Tik todėl, kad sintaksė yra lengvesnė ir lengviau skaitoma. Išskyrus tai, kad neatrodo, kad būtų jokių skirtumų funkcionalumo prasme.





Ankstesnis:ASP.NET---- įdiegti mygtuką arba nuorodą, kad būtų atidarytas prisijungimo dialogas
Kitą:Nustatykite, kad CheckBoxList eilutė nebūtų apvyniota
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com