В чем разница между View и PartialView в ASP.NET MVC?В чем разница между View и PartialView в ASP.NET MVC?
На первый взгляд потребность в обоих кажется неочевидной для меня.
В чем разница между View и PartialView в ASP.NET MVC?В чем разница между View и PartialView в ASP.NET MVC?
На первый взгляд потребность в обоих кажется неочевидной для меня.
В теории ответ: Частичный вид - это «подзадача», которую вы вставляете в основной вид - что-то, что вы можете использовать в нескольких представлениях, например, на боковой панели.
На практике ответ: Очень мало.
Теоретически частичные виды более легкие, чем стандартные, но вполне нормально передавать «обычный» вид на RenderPartial
, и производительность кажется абсолютно такой же. Я часто использую регулярные представления .aspx как «частичные» представления, потому что вы можете заставить их ссылаться на мастер-представление, чтобы предоставить шаблонный контент, например, что вы можете делать с UserControls в ASP.NET WebForms. См. here.
Частичные виды больше похожи на веб-части на портале - они полностью автономные объекты. Используйте их, если макет прост и статичен, или если вас раздражают ошибки Intellisense, если в стандартном представлении нет тегов <html>
и <body>
.
Рассмотрим PartialView как контроль в WebForms, идея частичного многоразов
Если вы приехали из WebForms фона, думать PartialView как UserControl.
Просмотров - это общий результат страницы, результатом которой является отображение. Это контейнер высочайшего уровня, кроме главной страницы. Хотя частичный вид предназначен для небольшого фрагмента контента, который может быть повторно использован на разных страницах или несколько раз на странице.
Если вы используете веб-формы, представление похоже на форму веб-содержимого, а частичный вид - как пользовательский элемент управления.
Посмотрите на сайте stackoverflow.com: Основной сайт (View) содержит компоненты, такие как:
Так Теги, связанные, объявления и т.д. могут быть составлены как PartialViews. Преимущество этого заключается в том, что PartialViews можно просто кэшировать с помощью OutputCache вместо воссоздания всего сайта: прирост производительности.
Но вы могли бы предположительно предусмотреть систему, которая просто позволяет «Views» содержать «Views», отрицая необходимость в дополнительном типе? – Ben
Вид, который содержит другие виды, очень удобен. Это зависит от вас, и вы можете иметь один большой вид или один вид в виде множества меньших видов. Все частичные представления должны быть независимыми от других и могут иметь другие типы в качестве возвращаемых значений. – Dariusz
Он работает так:
возвращение View() содержание зрения идет в @RenderBody() из /Shared/_Layout.cshtml
возврата PartialView() возвращает только содержание вид
как насчет возвращения View() и вернуть PartialView(), мне кажется, что нет никакой разницы – Omu
@Omu https: // StackOverflow.com/a/41982373/4854931 – Alex78191