1. RenderBody Razor dzinējā nav "lapu šablona", tā vietā lapa ar nosaukumu "izkārtojums" (_Layout.cshtml) tiek ievietota koplietojamā skata mapē. Šajā lapā tagā būs redzams paziņojums: @RenderBody() Faktiski tā darbojas līdzīgi kā servera vadīkla lappušu šablonā, kad tiek izveidots skats, kura pamatā ir šī izkārtojuma lapa, skata saturs tiek sapludināts ar izkārtojuma lapu un jaunizveidotā skata saturs tiek atveidots starp etiķetēm, izmantojot izkārtojuma lapas @RenderBody() metodi. Šai metodei nav nepieciešami parametri, un tā var parādīties tikai vienu reizi. 2. RenderPage Kā jūs varat uzminēt no nosaukuma, šī metode ir lapas prezentēšana. Piemēram, fiksēto galveni tīmekļa lapā var ievietot atsevišķi koplietojamā skata failā un pēc tam izsaukt izkārtojuma lapā šādi: @RenderPage("~/Skatījumi/Kopīgots/_Header.cshtml") Ar parametriem @RenderPage("~/Skatījumi/Kopīgots/_Header.cshtml",new{parm="mans",parm2="jūs") Zvaniet uz lapu, lai iegūtu parametrus: Iegūstiet parametrus, ko nodod RenderPage(). @PageData["param"] 3. Rendersadaļa Izkārtojuma lapai ir arī sadaļas jēdziens, tas ir, ja sadaļa ir definēta skata veidnē, to var parādīt atsevišķi šādā veidā: @RenderPage("~/Skatījumi/Kopīgots/_Header.cshtml") @RenderBody()
//模板里添加了一个节 @RenderSection ("galva") Protams, definējiet arī sadaļu skatā, pretējā gadījumā notiks izņēmums: @section galva{
//do
} Lai novērstu izņēmumus trūkstošo sadaļu dēļ, varat piešķirt RenderSection() otru argumentu: @RenderSection("SubMenu", false) vai @if (IsSectionDefined("Apakšizvēlne"))
{ @RenderSection("SubMenu", false)
} citādi
{ <p>Apakšizvēlnes sadaļa nav definēta!</p>
}
4.@Html.Partial Partial katru reizi izveido savu TextWriter instanci un saglabā saturu atmiņā. Visbeidzot, nosūtiet visu rakstītāja izvadi uz MvcString objektu Biežāk mēs izmantosim @{ html.RenderPartial("detaļas"); nevis @Html.Daļējs Atšķirība starp RenderPage() un RenderPartial(). RenderPage() izsaukumi to var izmantot tikai, lai nodotu iepriekšējos datus. RenderPartial() var izmantot viewdata, modeļa un citus datus. Atšķirība starp Html.RenderPartial un Html.RenderAction Html.RenderPartial ir piemērots atkārtotām UserControls, un tas ir jāizmanto tikai, lai atveidotu saturu, izmantojot modeļus, vai UserControls reklāmām. Html.RenderAction vispirms izsauc kontroliera darbības metodi, ja šai UserControl ir jāiegūst dati no datu bāzes, lai atveidotu (lasīt datu bāzi, izmantojot darbību), šī metode ir piemērotāka šim laikam. 5.Html.Partial("Mans skats") Atgriezt mēģinājuma straumi kā MvcHtmlString, ievērojot standarta maršrutēšanas kārtulas. Atveido skatu "MyView" par MvcHtmlString. Tas atbilst standarta noteikumiem skata meklēšanai (t.i., pārbaudiet pašreizējo direktoriju, pēc tam pārbaudiet koplietojamo direktoriju). Html.RenderPartial("Mans skats")
Līdzīgi kā Html.Partial(), atšķirība ir tāda, ka tas tiek ievadīts tieši lapā bez kešatmiņas. Veic to pašu kā Html.Partial(), izņemot to, ka tā raksta savu izvadi tieši atbildes plūsmā. Tas ir efektīvāk, jo skata saturs netiek buferēts atmiņā. Tomēr, tā kā metode neatgriež nekādu izvadi, @Html.RenderPartial("MyView") nedarbosies. Tā vietā jums ir jāietin zvans koda blokā: @{Html.RenderPartial("MyView"); }. RenderPage ("MyView.cshtml")
Atgriež īpašu skatu ar ceļiem, failu nosaukumiem utt., un izvada tieši tāpat kā Heml.RenderPartial() bez kešatmiņas. modeļa mainīgos var nodot. Atveido norādīto skatu (identificēts pēc ceļa un faila nosaukuma, nevis pēc skata nosaukuma) tieši atbildes plūsmā, piemēram, Html.RenderPartial(). Skatam var piegādāt jebkuru modeli, iekļaujot to kā otru parametru RenderPage("MyView.cshtml",MyModel)
Es dodu priekšroku
@RenderPage("_LayoutHeader.cshtml")Vairāk nekā @{Html.RenderPartial("_LayoutHeader"); }Tikai tāpēc, ka sintakse ir vienkāršāka un lasāmāka. Izņemot to, šķiet, ka funkcionalitātes ziņā nav nekādu atšķirību.
|