在视图里有多种方法可以 加载部分视图,包括:

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

以下是这些方法的差别:

Partial 与 RenderPartial 方法

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

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

RenderPartial 与 RenderAction 方法

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

2. 区别:RenderPartial 不需要创建 Controller 的 Action ,而 RenderAction 需要在 Controller 创建要加载的 Action。

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

如果这个部分视图只是一些简单 的 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()

最新文章

  1. es6学习笔记5--promise
  2. c#创建、保存excel正常执行
  3. hdu 2201
  4. Spring注入静态变量(转)
  5. 从安装.net Core 到helloWord(Mac上)
  6. Trump就职演说
  7. 通过grub-install命令把grub安装到u盘
  8. java基础之-I/O流和File类解析
  9. 更改系统盘符后DFS无法复制故障处理
  10. node express 静态资源
  11. MLR:利用多元线性回归法,从大量数据中提取五个因变量来预测一个自变量—Jason niu
  12. ecmall 入口文件解析 引入了什么
  13. Keil生成汇编文件、bin文件
  14. Python 常用 代码片段
  15. Linux 第八周实验 进程的切换和系统的一般执行过程
  16. canOpenURL: failed for URL: "weixin://app/wx 问题解决方式
  17. Linux Device Tree
  18. github高效搜索使用总结
  19. ORDER BY 高级用法之CASE WHEN
  20. springboot中如何添加第三方的jar包或者说如何配置本地jar

热门文章

  1. DOM中表格的操作方法总结
  2. ubuntu默认壁纸位置
  3. poj 2762(强连通分量+拓扑排序)
  4. aliyun centos14.04 trusty 上安装docker1.12.1
  5. XQN number format
  6. /include/caffe/common.cuh(9): error: function "atomicAdd(double *, double)" has already been defined
  7. ansible系列1-批量分发钥匙
  8. 自学Zabbix4.2.1 Application介绍
  9. STM32外设地址查询
  10. 使用ntlmrelayx在任何地方进行中继凭据