Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 13486|Atbildi: 0

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

[Kopēt saiti]
Publicēts 19.07.2015 23:37:53 | | |
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.





Iepriekšējo:ASP.NET---- ieviest klikšķa pogu vai saiti, lai parādītu pieteikšanās dialogu
Nākamo:Iestatiet izvēles rūtiņu sarakstu, lai rindiņa netiktu aplauzta
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com