Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 13486|Ответ: 0

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

[Скопировать ссылку]
Опубликовано 19.07.2015 23:37:53 | | |
1. RenderBody
В движке Razor нет «главной страницы», вместо этого в папке shared view размещается страница с названием «layout» (_Layout.cshtml). На этой странице вы увидите утверждение в теге:
@RenderBody()
Фактически, он работает аналогично серверному контролю на мастер-странице: когда создаётся представление на основе этой страницы, содержимое представления объединяется со страницей макета, а содержимое нового представления отображается между метками с помощью метода @RenderBody() страницы макета.
Этот метод не требует параметров и может появиться только один раз.
2. RenderPage
Как вы можете догадаться по названию, этот способ — представить страницу. Например, фиксированный заголовок на веб-странице может быть помещён отдельно в общий файл представления, а затем вызван таким образом на странице макета следующим образом:
@RenderPage("~/Просмотры/Общие данные/_Header.cshtml")
С параметрами
@RenderPage("~/Просмотры/Shareed/_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>Раздел SubMenu не определен!</p>
}
4.@Html.Partial
Partial каждый раз создаёт собственный экземпляр TextWriter и кэширует содержимое в памяти. Наконец, отправьте весь вывод писателя в объект MvcString
Чаще всего мы используем @{ html.RenderPartial("details"); вместо @Html. Частичный
Разница между RenderPage() и RenderPartial().
Вызовы RenderPage() могут использовать его только для передачи данных мимо.
RenderPartial() может использовать данные представления, модель и другие данные.
Разница между Html.RenderPartial и Html.RenderAction
Html.RenderPartial подходит для повторяющихся UserControls и используется только для рендеринга контента через модели или для UserControls для рекламы. Html.RenderAction сначала вызовет метод Действия контроллера, если для рендеринга (чтения базы данных через действие) необходимо получить данные из базы данных, этот метод более подходит для этого времени.
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