MVC 部分视图:Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage() 区别

在视图里有多种方法能够 加载部分视图,包括:html

Partial()  Action()  RenderPartial()  RenderAction()  RenderPage() 方法。mysql

如下是这些方法的差异:sql

Partial 与 RenderPartial 方法数据库

1. Razor 语法:@Html.Partial() 与 @{Html.RenderPartial();}缓存

2. 区别:Partial 能够直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),而后缓存起来,最后在一次性输出到页面。显然,这个转换的过程,会下降效率,因此一般使用 RenderPartial 代替。.net

 

RenderPartial 与 RenderAction 方法htm

1. Razor 语法:@{Html.RenderPartial();}  与 @{Html.RenderAction();}get

2. 区别:RenderPartial 不须要建立 Controller 的 Action ,而 RenderAction 须要在 Controller 建立要加载的 Action。string

 RenderAction 会先去调用 Contorller 的 Action ,最后再 呈现视图,因此这里 页面会在 发起一个连接。it

 若是这个部分视图只是一些简单 的 html 代码,请使用 RenderPartial。 但若是这个部分视图 除了有 html 代码外,还须要 经过 读取数据库里的数据 来渲染,就必须使用 RenderAction 了,由于 它能够在 Action 里调用 Model里的     方法读取数据库,渲染视图后在呈现,而 RenderPartial 没有 Action,因此没法作到。

RenderAction 渲染的部分视图 至关于 彻底独立的页面 内容和原页面的彻底独立(如Model  ViewBag)

RenderPartial 渲染的部分视图 可使用原来视图的 Model 和 ViewData。


RenderAction 与 Action

1. Razor 语法:@{Html.RenderAction();}  与 @Html.Action();

2. 区别:Action 也是直接输出,和 Partial 同样,也存在一个转换的过程。不如 RenderAction 直接输出到 当前           HttpContext 的效率高。


RenderPage 与 RenderPartial 方法

1. Razor 语法:@{Html.RenderPartial();}  与 @RenderPage()

相关文章
相关标签/搜索