|
|
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édetKövetkező:Állítsd be a CheckBoxList-et, hogy ne tekerje be a sort
|