Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 13486|Válasz: 0

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

[Linket másol]
Közzétéve 2015. 07. 19. 23:37:53 | | |
1. RenderBody
A Razor motorban nincs "fő oldal", helyette egy "layout" (_Layout.cshtml) nevű oldal kerül a megosztott nézet mappába. Ezen az oldalon egy nyilatkozatot látsz a címkén:
@RenderBody()
Valójában hasonlóan működik a fő oldal szervervezérléséhez: amikor ezen az elrendezési oldalon alapuló nézetet hoznak létre, a nézet tartalma összeolvasztódik a layout oldallal, és az újonnan létrehozott nézet tartalma a címkék között jelenik meg a layout oldal @RenderBody() módszerével.
Ez a módszer nem igényel paramétereket, és csak egyszer jelent meg.
2. RenderPage
Ahogy a névből is sejted, ez a módszer egy oldal bemutatása. Például a weboldal fix fejléce külön elhelyezhető egy megosztott nézetű fájlba, majd ezt a módszert hívhatja meg a layout oldalon, a következőként:
@RenderPage("~/Views/Shared/_Header.cshtml")
Paraméterekkel
@RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you")
Hívd fel az oldalt, hogy megkapd a paramétereket:
A paramétereket a RenderPage() segítségével továbbítja.
@PageData["param"]
3. RenderSection
A layout oldal is tartalmazza a szekció fogalmát, vagyis ha egy szakasz definiálva van egy nézeti sablonban, akkor az a következő módon külön is bemutatható:
@RenderPage("~/Views/Shared/_Header.cshtml")
@RenderBody()
//模板里添加了一个节
@RenderSection("fej")
Természetesen definiáljuk a szakaszt is a nézetben, különben kivétel következik be:
@section fej{
//do
}
A hiányzó szakaszok miatti kivételek elkerülése érdekében adhatsz a RenderSection()-nak egy második érvet:
@RenderSection("SubMenu", hamis)
vagy
@if (IsSectionDefined("SubMenu"))
{
@RenderSection("SubMenu", hamis)
}
más
{
<p>Az Almenü szekció nincs meghatározva!</p>
}
4.@Html.Partial
A részleges minden alkalommal létrehozza saját TextWriter példányát, és a tartalmat gyorsabőrbe gyűjti a memóriában. Végül küldd el az összes író kimenetet egy MvcString objektumnak
Leggyakrabban @{ html.RenderPartial("részletek") kifejezést használunk; helyette @Html. Részleges
A különbség a RenderPage() és a RenderPartial() között.
A RenderPage() hívások csak az adatok továbbítására használhatják.
A RenderPartial() használhat viewdatat, modellt és egyéb adatokat.
A különbség a Html.RenderPartial és a Html.RenderAction között
A Html.RenderPartial ismétlődő UserControl-okhoz alkalmas, és csak tartalom megjelenítésére vagy hirdetésekhez szükséges tartalom megjelenítésére. A Html.RenderAction először a Controller's Action metódust hívja meg, ha ennek a UserControlnak adatokat kell szereznie az adatbázisból a rendereléshez (az adatbázis olvasásához az Action-en), ez a módszer alkalmasabb erre az időszakra.
5.Html.Partial("MyView")
Küldj vissza egy próbálkozó streamet MvcHtmlStringként, a szabványos útvonalválasztási szabályok szerint.
A "MyView" nézetet MvcHtmlStringre jeleníti meg. Követi a nézetkeresés szokásos szabályait (azaz ellenőrizd az aktuális könyvtárat, majd a Megosztott könyvtárat).
Html.RenderPartial("MyView")

Hasonlóan a Html.Partial(hoz), a különbség az, hogy közvetlenül az oldalra van beírva, gyorsítótár nélkül. Ugyanezt teszi, mint a Html.Partial(), csak hogy a kimenetét közvetlenül a válaszfolyamba írja le. Ez hatékonyabb, mert a nézet tartalma nincs pufferezve a memóriában. Azonban mivel a metódus nem ad vissza semmilyen kimenetet, a @Html.RenderPartial("MyView") nem fog működni. A hívást inkább egy kódblokkba kell csomagolni: @{Html.RenderPartial("MyView"); }.
RenderPage("MyView.cshtml")

Speciális nézetet ad vissza útvonalakkal, fájlnevekkel stb., és közvetlenül a Heml.RenderPartial() gyorsítótár nélkül. Modellváltozók átadhatók. A megadott nézetet (amelyet az út és fájlnév alapján jelöl, nem pedig nézet név alapján) közvetlenül a válaszfolyamba jeleníti meg, mint például a Html.RenderPartial(). Bármilyen modellt megadhatsz a nézethez, ha azt második paraméterként is hozzáadod.
RenderPage("MyView.cshtml",MyModel)

Én jobban szeretem
@RenderPage("_LayoutHeader.cshtml")Vége
@{html.RenderPartial("_LayoutHeader"); }Csak azért, mert a szintaxis könnyebb és olvashatóbb. Ettől eltekintve úgy tűnik, nincs különbség funkcionalitásban.





Előző:ASP.NET---- implementálni egy kattintó gombot vagy linket, hogy felhívja a bejelentkezési párbeszédet
Következő:Állítsd be a CheckBoxList-et, hogy ne tekerje be a sort
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com