ASP.NET MVC中的View和PartialView有什么区别?

Ben*_*Ben 38 asp.net-mvc views

ASP.NET MVC中的View和PartialView有什么区别?

乍一看,对我来说两者的需求似乎并不明显.

Aar*_*ght 42

从理论上讲,答案是: 部分视图是您在主视图中嵌入的"子视图" - 您可以在多个视图中重复使用,例如侧边栏.

在实践中,答案是: 很少.

理论上,部分视图比标准视图更轻量级,但是将"常规"视图传递给它RenderPartial并且性能似乎完全相同是完全可行的.我经常将常规.aspx视图用作"部分"视图,因为您可以使它们引用主视图,以便提供模板化内容,就像您可以使用ASP.NET WebForms中的UserControls一样.看到这里.

部分视图更像是门户网站上的Web部件 - 它们是完全自包含的对象.如果布局简单且静态,或者当您在标准视图中没有<html><body>标记时,您会被Intellisense错误所困扰,请使用它们.


小智 10

它的工作方式如下:

  • return View()视图内容位于/Shared/_Layout.cshtml的@RenderBody()中

  • 返回PartialView()它只返回视图内容


Tim*_*han 6

视图是导致显示的页面的一般结果。除母版页外,它是最高级别的容器。部分视图是针对一小部分内容的,可在不同页面上重复使用,或在页面中多次使用。

如果您来自Web表单,则视图类似于Web内容表单,而部分视图就像用户控件。