2010-01-11 4 views

ответ

38

В теории ответ: Частичный вид - это «подзадача», которую вы вставляете в основной вид - что-то, что вы можете использовать в нескольких представлениях, например, на боковой панели.

На практике ответ: Очень мало.

Теоретически частичные виды более легкие, чем стандартные, но вполне нормально передавать «обычный» вид на RenderPartial, и производительность кажется абсолютно такой же. Я часто использую регулярные представления .aspx как «частичные» представления, потому что вы можете заставить их ссылаться на мастер-представление, чтобы предоставить шаблонный контент, например, что вы можете делать с UserControls в ASP.NET WebForms. См. here.

Частичные виды больше похожи на веб-части на портале - они полностью автономные объекты. Используйте их, если макет прост и статичен, или если вас раздражают ошибки Intellisense, если в стандартном представлении нет тегов <html> и <body>.

+0

как насчет возвращения View() и вернуть PartialView(), мне кажется, что нет никакой разницы – Omu

+0

@Omu https: // StackOverflow.com/a/41982373/4854931 – Alex78191

2

Рассмотрим PartialView как контроль в WebForms, идея частичного многоразов

2

Если вы приехали из WebForms фона, думать PartialView как UserControl.

3

Просмотров - это общий результат страницы, результатом которой является отображение. Это контейнер высочайшего уровня, кроме главной страницы. Хотя частичный вид предназначен для небольшого фрагмента контента, который может быть повторно использован на разных страницах или несколько раз на странице.

Если вы используете веб-формы, представление похоже на форму веб-содержимого, а частичный вид - как пользовательский элемент управления.

3

Посмотрите на сайте stackoverflow.com: Основной сайт (View) содержит компоненты, такие как:

  • Теги
  • Связанные
  • Ad

Так Теги, связанные, объявления и т.д. могут быть составлены как PartialViews. Преимущество этого заключается в том, что PartialViews можно просто кэшировать с помощью OutputCache вместо воссоздания всего сайта: прирост производительности.

+2

Но вы могли бы предположительно предусмотреть систему, которая просто позволяет «Views» содержать «Views», отрицая необходимость в дополнительном типе? – Ben

+0

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

6

Он работает так:

  • возвращение View() содержание зрения идет в @RenderBody() из /Shared/_Layout.cshtml

  • возврата PartialView() возвращает только содержание вид

Смежные вопросы