ASP.NET MVC4 之部分视图

在Asp.net mvc 的视图里有多种方法可以来加载部分视图,这几种方法是:

  1. Partial()  
  2. Action()  
  3. RenderPartial()  
  4. RenderAction()  
  5. 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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值