Відповіді:
Html.Partial("MyView")
Здійснює перегляд "MyView" an MvcHtmlString
. Він дотримується стандартних правил пошуку перегляду (тобто перевірити поточний каталог, а потім перевірити Shared
каталог).
Html.RenderPartial("MyView")
Так само, як Html.Partial()
, за винятком того, що він записує свій вихід безпосередньо в потік відповідей. Це більш ефективно, оскільки вміст перегляду не буферизовано в пам'яті. Однак, оскільки метод не повертає жодного результату, @Html.RenderPartial("MyView")
він не працюватиме. Ви повинні обернути виклик в блоці коду замість: @{Html.RenderPartial("MyView");}
.
RenderPage("MyView.cshtml")
Надає вказаний вид (ідентифікований шляхом шляху та імені файлу, а не ім'ям перегляду) безпосередньо до потоку відповідей, наприклад Html.RenderPartial()
. Ви можете надати будь-яку модель, яку вам подобається, переглянувши її, включивши її як другий параметр
RenderPage("MyView.cshtml", MyModel)
@Html.Partial("MyView")
порівняно@{Html.RenderPartial("MyView");}
RenderPage
? Я хочу вкласти іншу сторінку, вказавши конкретний параметр запиту, який би, в свою чергу, фільтрував дані на цій сторінці, а крім того, видалив власний макет.
я віддаю перевагу
@RenderPage("_LayoutHeader.cshtml")
Над
@{ Html.RenderPartial("_LayoutHeader"); }
Тільки тому, що синтаксис легший і він легше читається. Окрім цього, схоже, що функціональних відмінностей немає.
EDIT: Однією з переваг RenderPartial є те, що вам не доведеться вказувати весь шлях або розширення файлу, він автоматично шукатиме загальні місця.
RenderPage
за синтаксису.
Метод RenderPartial не повертає розмітку HTML, як і більшість інших допоміжних методів. Натомість він записує вміст безпосередньо у потік відповідей, тому ми мусимо називати його як повний рядок C #, використовуючи крапку з комою.
Це дещо ефективніше, ніж буферизація виведеного HTML з часткового перегляду, оскільки він все одно буде записаний у потік відповідей. Якщо ви віддаєте перевагу більш послідовному синтаксису, ви можете використовувати метод Html.Partial , який виконує точно те саме, що і метод RenderPartial , але повертає фрагмент HTML і може використовуватися як @ Html.Partial ("Продукт", с).
@RenderPages()
Вищезазначене не працює в ASP.NET MVC. Він працює лише на веб-сторінках.
@Html.Partial("_Footer")
Вам потрібно буде використовувати вищезазначене в ASP.NET MVC.