Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 13486|Отговор: 0

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

[Копирай линк]
Публикувано в 19.07.2015 г. 23:37:53 ч. | | |
1. RenderBody
В Razor engine няма "master page", вместо това страница, наречена "layout" (_Layout.cshtml), се поставя в папката shared view. На тази страница ще видите твърдение в тага:
@RenderBody()
Всъщност той работи подобно на контрола на сървъра в главната страница – когато се създаде изглед, базиран на тази страница с оформление, съдържанието на изгледа се слива със страницата на оформлението, а съдържанието на новосъздадения изглед се рендерира между етикетите чрез метода @RenderBody() на страницата за оформление.
Този метод не изисква параметри и може да се появи само веднъж.
2. RenderPage
Както можете да се досетите от името, този метод е да представите страница. Например, фиксираният хедър в уеб страница може да бъде поставен отделно в споделен изглед файл и след това да бъде извикан по този начин на страницата за оформление, както следва:
@RenderPage("~/Прегледи/Споделено/_Header.cshtml")
С параметри
@RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you")
Обадете се на страницата, за да получите параметрите:
Вземете параметрите, предоставени от RenderPage().
@PageData["param"]
3. RenderSection
Страницата за оформление съдържа и концепцията за секция, тоест, ако секцията е дефинирана в шаблон за изглед, тя може да бъде представена отделно по следния начин:
@RenderPage("~/Прегледи/Споделено/_Header.cshtml")
@RenderBody()
//模板里添加了一个节
@RenderSection("глава")
Разбира се, дефинирайте и секцията в изгледа, иначе ще възникне изключение:
@section глава{
//do
}
За да предотвратите изключения поради липсващи секции, можете да дадете на RenderSection() втори аргумент:
@RenderSection("SubMenu", невярно)
или
@if (IsSectionDefined("SubMenu"))
{
@RenderSection("SubMenu", невярно)
}
Друго
{
<p>Подменюто не е дефинирано!</p>
}
4.@Html.Partial
Partial създава собствен TextWriter всеки път и кешира съдържанието в паметта. Накрая, изпратете целия изход на writer към MvcString обект
По-често използваме @{ html.RenderPartial("details"); вместо @Html. Частично
Разликата между RenderPage() и RenderPartial().
RenderPage() повикванията могат да го използват само за предаване на данни покрай тях.
RenderPartial() може да използва данни за изглед, модел и други данни.
Разликата между Html.RenderPartial и Html.RenderAction
Html.RenderPartial е подходящ за повтарящи се UserControls и трябва да се използва само за рендериране на съдържание чрез модели или за UserControls за реклами. Html.RenderAction първо ще извика метода Action на контролера, ако този UserControl трябва да получи данни от базата данни за рендериране (четене на базата данни чрез действието), този метод е по-подходящ за този момент.
5.Html.Partial("MyView")
Връщане на поток от опити като MvcHtmlString, следвайки стандартните правила за маршрутизиране.
Рендерира "MyView" изглед в MvcHtmlString. Следва стандартните правила за търсене на изглед (т.е. проверете текущата директория, след това проверете споделената директория).
Html.RenderPartial("MyView")

Подобно на Html.Partial(), разликата е, че се въвежда директно в страницата без кеширане. Прави същото като Html.Partial(), с изключение на това, че записва изхода си директно в потока на отговори. Това е по-ефективно, защото съдържанието на изглед не се буферира в паметта. Въпреки това, тъй като методът не връща никакъв изход, @Html.RenderPartial("MyView") няма да работи. Трябва да обвиете повикването в кодов блок вместо това: @{Html.RenderPartial("MyView"); }.
RenderPage ("MyView.cshtml")

Връща специален изглед с пътища, имена на файлове и т.н., и извежда директно като Heml.RenderPartial() без кеширане. моделните променливи могат да се предават. Рендерира зададения изглед (идентифициран по пътя и името на файла, а не по име на изглед) директно към потока на отговори, като Html.RenderPartial(). Можете да предоставите какъвто модел пожелаете, като го включите като втори параметър
RenderPage ("MyView.cshtml",MyModel)

Предпочитам
@RenderPage("_LayoutHeader.cshtml")Край
@{Html.RenderPartial("_LayoutHeader"); }Само защото синтаксисът е по-лесен и по-четлив. Освен това не изглежда да има разлики по отношение на функционалността.





Предишен:ASP.NET---- приложите бутон за кликване или линк, за да отворите диалога за вход
Следващ:Настройте CheckBoxList да не обвива линията
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com