Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 13486|Odpověď: 0

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

[Kopírovat odkaz]
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í okno
Další:Nastavte CheckBoxList tak, aby se řádek neobaloval
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com