MVC 部分视图:Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage() 区别
在视图里有多种方法可以 加载部分视图,包括:
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()
最新文章
- es6学习笔记5--promise
- c#创建、保存excel正常执行
- hdu 2201
- Spring注入静态变量(转)
- 从安装.net Core 到helloWord(Mac上)
- Trump就职演说
- 通过grub-install命令把grub安装到u盘
- java基础之-I/O流和File类解析
- 更改系统盘符后DFS无法复制故障处理
- node express 静态资源
- MLR:利用多元线性回归法,从大量数据中提取五个因变量来预测一个自变量—Jason niu
- ecmall 入口文件解析 引入了什么
- Keil生成汇编文件、bin文件
- Python 常用 代码片段
- Linux 第八周实验 进程的切换和系统的一般执行过程
- canOpenURL: failed for URL: ";weixin://app/wx 问题解决方式
- Linux Device Tree
- github高效搜索使用总结
- ORDER BY 高级用法之CASE WHEN
- springboot中如何添加第三方的jar包或者说如何配置本地jar
热门文章
- DOM中表格的操作方法总结
- ubuntu默认壁纸位置
- poj 2762(强连通分量+拓扑排序)
- aliyun centos14.04 trusty 上安装docker1.12.1
- XQN number format
- /include/caffe/common.cuh(9): error: function ";atomicAdd(double *, double)"; has already been defined
- ansible系列1-批量分发钥匙
- 自学Zabbix4.2.1 Application介绍
- STM32外设地址查询
- 使用ntlmrelayx在任何地方进行中继凭据