1. RenderBody У рушії Razor немає «головної сторінки», натомість сторінка під назвою «layout» (_Layout.cshtml) розміщується у папці спільного перегляду. На цій сторінці ви побачите заяву в тегу: @RenderBody() Насправді це працює подібно до керування сервером на головній сторінці: коли створюється перегляд на основі цієї сторінки верстки, вміст перегляду об'єднується зі сторінкою верстки, а вміст новоствореного вигляду відображається між мітками за допомогою методу @RenderBody() сторінки верстки. Цей метод не потребує параметрів і може з'являтися лише один раз. 2. RenderPage Як ви можете здогадатися з назви, цей метод полягає в тому, щоб представити сторінку. Наприклад, фіксований заголовок на веб-сторінці можна розмістити окремо у спільному файлі перегляду, а потім викликати цим методом на сторінці верстки, наступним чином: @RenderPage("~/перегляди/спільне/_Header.cshtml") З параметрами @RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you") Зателефонуйте на сторінку, щоб дізнатися параметри: Отримайте параметри, передані RenderPage(). @PageData["param"] 3. RenderSection Сторінка верстки також має концепцію розділу, тобто якщо розділ визначений у шаблоні view, його можна подати окремо наступним чином: @RenderPage("~/перегляди/спільне/_Header.cshtml") @RenderBody()
//模板里添加了一个节 @RenderSection(«голова») Звісно, також визначте розділ у вигляді, інакше виникне виняток: @section голова{
//do
} Щоб уникнути винятків через відсутні розділи, можна задати RenderSection() другий аргумент: @RenderSection("Підменю", хибно) або @if (IsSectionDefined("SubMenu"))
{ @RenderSection("Підменю", хибно)
} інше
{ <p>Розділ підменю не визначений!</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 спочатку викликає метод Action контролера, якщо цей UserControl потребує отримання даних з бази даних для рендерингу (читання бази даних через Action), цей метод більш підходить для цього часу. 5.Html.Partial("MyView") Поверніть потік спроби у вигляді MvcHtmlString, дотримуючись стандартних правил маршрутизації. Рендерить вигляд "MyView" у MvcHtmlString. Він відповідає стандартним правилам пошуку view (тобто перевірити поточний каталог, потім перевірити спільний каталог). 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"); }Лише тому, що синтаксис простіший і читабельніший. Окрім цього, здається, немає жодних відмінностей у функціональному плані.
|