ASP.NET(11) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

【部分视图】

ASP.NET MVC 里的部分视图,相当于 Web Form 里的 User Control。我们的页面往往会有许多重用的地方,可以进行封装重用。使用 部分视图 :  1. 可以简写代码。2. 页面代码更加清晰、更好维护。

【如何使用】

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

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 与 Action

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

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

RenderPage 与 RenderPartial 方法

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

2. 区别:也可以使用 RenderPage 来呈现部分,但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传        递。而 RenderPartial 可以使用原来视图的 Model 和 ViewData。

【总结】

ASP.NET MVC 引入的 部分视图(Partial View)和 布局 (Layout)其实都不是新的概念,相当于是 Web Form 里的User Control 和 Master Page 。原理是一样的,只是 实现技术有一点差别。

 
4

最新文章

  1. ssh项目java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoade错误
  2. .NET程序的简单编译原理
  3. HTTP请求 GET POST 网络编程实现
  4. C++_static与非static成员(函数)
  5. 初始Python类
  6. DBCC TRACEON/TRACEOFF/TRACESTATUS
  7. (转)iphone数据存储之-- Core Data的使用
  8. 根据ip查询地区,经纬度等-geoip2
  9. BZOJ3389: [Usaco2004 Dec]Cleaning Shifts安排值班
  10. 02-Foundation-NSMutableString、NSNumber、NSValue、NSDate、NSArray
  11. 一种快速查询多点DS18B20温度的方法(转)
  12. Java使用BigDecimal计算保留位数不对问题定位
  13. __int128
  14. 记录一次使用VS2015编译错误的原因查找(boost+gdal)
  15. headfirst python 03, 04
  16. 快速构建springmvc+spring+swagger2环境
  17. 2018.09.25 bzoj1856: [Scoi2010]字符串(组合数学)
  18. SpingMVC_注解式开发_接收请求参数
  19. Markdown 手册
  20. MVC各个层的作用

热门文章

  1. caller和callee
  2. 关于360的META设置,强制使用极速模式
  3. 继承IDbConnection连接不同数据库
  4. CSS这些代码你都不会,你还有什么好说的!!!
  5. Unix/Linux 用户 nobody
  6. 吉他笔记 solo 和弦 推弦 音程
  7. XML文件数据操作
  8. 查询oracle数据库中的所有表空间信息
  9. Codeforces 259 B - Little Pony and Sort by Shift
  10. iOS软件版本更新思路