|
|
Zveřejněno 19.07.2015 23:37:53
|
|
|

1. RenderBody V Razor enginu neexistuje "hlavní stránka", místo toho je stránka nazvaná "layout" (_Layout.cshtml) umístěna do sdílené složky zobrazení. Na této stránce uvidíte v tagu prohlášení: @RenderBody() Ve skutečnosti funguje podobně jako ovládání serveru na hlavní stránce – když je na základě této stránky rozložení vytvořen pohled, obsah pohledu se sloučí se stránkou rozložení a obsah nově vytvořeného pohledu se vykreslí mezi štítky metodou @RenderBody() stránky rozložení. Tato metoda nevyžaduje parametry a může se objevit pouze jednou. 2. RenderPage Jak lze odhadnout z názvu, tato metoda spočívá v prezentaci stránky. Například pevná hlavička na webové stránce může být umístěna samostatně v souboru sdíleného zobrazení a poté volána touto metodou na stránce rozvržení, následovně: @RenderPage("~/Views/Shared/_Header.cshtml") S parametry @RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you") Zavolejte na stránku a získejte parametry: Nechte parametry předat RenderPage(). @PageData["param"] 3. RenderSekci Stránka s rozložením má také pojem sekce, tedy pokud je sekce definována v šabloně pohledu, může být prezentována samostatně následujícím způsobem: @RenderPage("~/Views/Shared/_Header.cshtml") @RenderBody()
//模板里添加了一个节 @RenderSection("hlava") Samozřejmě také definujte sekci ve zobrazení, jinak nastane výjimka: @section hlava{
//do
} Aby se předešlo výjimkám kvůli chybějícím sekcím, můžete RenderSection() použít druhý argument: @RenderSection("SubMenu", nepravda) nebo @if (IsSectionDefined("SubMenu"))
{ @RenderSection("SubMenu", nepravda)
} jinak
{ <p>Sekce SubMenu není definována!</p>
}
4.@Html.Partial Partial pokaždé vytvoří vlastní instanci TextWriteru a obsah uloží do paměti. Nakonec pošlete veškerý výstup zapisovače do objektu MvcString Častěji než ne používáme @{ html.RenderPartial("detail"); místo @Html. Částečný Rozdíl mezi RenderPage() a RenderPartial(). Volání RenderPage() ho může použít pouze k předávání dat. RenderPartial() může používat viewdata, model a další data. Rozdíl mezi Html.RenderPartial a Html.RenderAction Html.RenderPartial je vhodný pro opakované UserControls a stačí jej použít pouze k vykreslování obsahu prostřednictvím modelů nebo pro UserControls pro reklamy. Html.RenderAction nejprve vyvolá metodu Controller's Action, pokud tento UserControl potřebuje získat data z databáze k vykreslení (čtení databáze přes Action), tato metoda je pro tuto dobu vhodnější. 5.Html.Partial("MyView") Vraťte proud pokusů jako MvcHtmlString, podle standardních směrovacích pravidel. Zobrazuje pohled "MyView" na MvcHtmlString. Řídí se standardními pravidly pro vyhledávání zobrazení (tj. zkontrolujte aktuální adresář a poté zkontrolujte sdílený adresář). Html.RenderPartial("MyView")
Podobně jako Html.Partial() je rozdíl v tom, že se píše přímo na stránku bez ukládání do cache. Dělá totéž jako Html.Partial(), ale zapisuje svůj výstup přímo do odpovědního proudu. To je efektivnější, protože obsah zobrazení není uložen v paměti. Nicméně, protože metoda nevrací žádný výstup, @Html.RenderPartial("MyView") nebude fungovat. Místo toho musíte volání zabalit do kódového bloku: @{Html.RenderPartial("MyView"); }. RenderPage("MyView.cshtml")
Vrací speciální pohled s cestami, názvy souborů atd. a výstup je přímo jako Heml.RenderPartial() bez cache. Modelové proměnné lze předávat. Zobrazuje zadaný pohled (identifikovaný cestou a názvem souboru místo názvu zobrazení) přímo do proudu odpovědí, například Html.RenderPartial(). Můžete do zobrazení dodat jakýkoli model tím, že ho zahrnete jako druhý parametr RenderPage("MyView.cshtml",MyModel)
Já dávám přednost
@RenderPage("_LayoutHeader.cshtml")Konec @{Html.RenderPartial("_LayoutHeader"); }Pouze proto, že syntaxe je jednodušší a lépe čitelná. Jinak se nezdá, že by byly nějaké rozdíly ve funkčnosti.
|
Předchozí:ASP.NET---- použít tlačítko kliknutí nebo odkaz, který zobrazí přihlašovací oknoDalší:Nastavte CheckBoxList tak, aby se řádek neobaloval
|