2010-01-11 29 views

回答

38

理論上,答案是:部分視圖是嵌入在主視圖中的「子視圖」 - 您可以在多個視圖中重用,如側邊欄。

實際中,答案是:很少。

從理論上講,部分視圖比標準視圖更輕量,但將「常規」視圖傳遞到RenderPartial並且性能看起來完全相同是完全可以的。我經常使用常規.aspx視圖作爲「部分」視圖,因爲您可以讓它們引用主視圖,以便提供模板化內容,例如您可以使用ASP.NET WebForms中的UserControl執行的內容。見here

部分視圖更像門戶網站上的Web部件 - 它們是完全自包含的對象。如果佈局簡單且靜態,或者如果在標準視圖中沒有<html><body>標記時出現智能感知錯誤,請使用它們。

+0

怎麼樣返回查看(),並返回PartialView(),在我看來,有在所有 – Omu 2010-04-07 13:24:49

+0

@Omu HTTPS沒有區別://計算器。com/a/41982373/4854931 – Alex78191 2017-07-14 01:45:33

2

考慮像web表單控制一個partialview,這個想法是部分可重複使用

2

如果你來自一個web表單的背景,認爲PartialView作爲一個用戶控件。

3

視圖是導致顯示的頁面的一般結果。這是除了masterpage以外的最高級容器。部分視圖是針對可能在不同頁面上重複使用或在頁面中多次重複使用的一小段內容。

如果您來自webforms,則視圖與Web內容窗體類似,而局部視圖與用戶控件相似。

3

看StackOverflow.com網站: 主要網站(查看)中包含類似的組件:

  • 標籤
  • 相關
  • 廣告

所以標籤,相關的,廣告等。可以組成部分視圖。這樣做的好處是可以通過OutputCache簡單地緩存部分視圖,而不是重新創建所有站點:性能增益。

+2

但是,你大概可以設想一個系統,它只是簡單地使「視圖」包含「視圖」,而不需要額外的類型? – Ben 2010-01-12 10:56:37

+0

包含其他視圖的視圖非常方便。這取決於你,你可以選擇將一個大視圖或一個視圖設置爲一組較小的視圖。所有部分視圖應該獨立於其他視圖,並可以具有其他類型作爲返回值。 – Dariusz 2010-01-12 11:20:56

6

它工作起來就像是:/Shared/_Layout.cshtml

  • 回報PartialView(的

    • 返回視圖()視圖內容雲在@RenderBody()),它只返回視圖內容

  • 相關問題