当前位置 > 首页 > Asp.net

asp.net MVC3 Helpers Partial RenderPartial Action RenderAction

2012-11-19 22:55:00来源:Asp.net

partial

RenderPartial

html.Partial 有返回值(MvcHtmlString)  而RenderPartial 则没有任何的返回值(void)

partial输出到临时变量StringWriter  而renderPartial则是直接输出到HtmlHelper.ViewContext.Writer(即直接输出到response中)

调用语法也不同:@Html.Partial(“partialViewName”)

@{Html.RenderPartial(“partialName”);}  即renderPartial是有边界存在的

Action

RenderAction

RenderPartial 和RenderAction的不同点:

1.RenderPartial的数据来自调用的View ,而RenderAction来自自己。

2.RenderAction会发起一个新的Request,而RenderPartial不会。

如何选择:根据两者不同点中的第二点,由于RenderAction会调用一个新的Action方法,而asp.net MVC中的Action是最小的缓存单位,因此如果某一个块的数据比较固定,不会因为访问者的不同而发生变化,那么这时就是使用RenderAction的时候了。题外话,对于RenderAction会发起一个新的Reuest,感觉对调用页面的流程进行破坏了。一个View在显示的时候,自己发起请求Request去获取数据来显示,显然破坏了作为一个View的原则:A View Should only know how to render,but not what to render!

ChildAction Attribute   the attribute prevents the runtime from invoking the action directly via the URls;

 

In MVC 3 there is also a new property on the ControllerContext named IsChildAction.IsChildAction  will be true when someone calls an action via Action or RenderAction( but false  when invoked via Urls).

Action  RenderAction  Partial  RenderPartial  的作用都相当于web form时代的用户控件(User Control),只是加载的方式可能不同,但是最后得到的效果都是大同小异的

本文链接



  • aspConf - Free Virtual ASP.NET Conference this week

    2012-7-15 7:03:00

    aspConf is a free, virtual conference dedicated to ASP.NET. Its the sequel to the popular mvcConf

  • 一个不应该发生的BUG。。。

    2009-8-5 3:07:00

    遇到这个BUG已经过了好几天了,很小的一个问题。本不准备再去提及的,后来想想,还是应该写出来以警示自己。 问题发生于QQ群里的网友在编写一个字符串反转的函数,在测试的时候莫名其妙的遇到了段错误的

  • 国内第一个开源的信息系统开发平台openexpressapp 1.0发布

    2009-10-9 16:40:00

    摘要: 之前写了一篇OpenExpressApp的简单介绍《OpenExpressApp架构-国内第一个开源的信息系统开发平台》很高兴的告诉大家,openexpressapp已在微软codeplex

  • 【总结—.Net Framework集合类】

    2011-9-15 20:18:00

    写在前面: 最近在学习 .Net 的集合框架,看了许多博文,也看了书,总感觉不是很明白。心里疑惑很多,每天郁闷度日。如果学技术时感到很痛苦,有两种可能,其一是学习方法不对

  • WorldWind学习系列七:Load/Unload Plugins——直捣黄龙篇

    2009-12-17 0:05:00

    阅读: 203 评论: 0 作者: 无痕客 发表于 2009-12-16 20:44 原文链接 第二部分   窗体中的Load和Unload功能,分别调用了306行PluginL

  • VS2010 Beta1下Silverlight3试用手记

    2009-5-22 13:15:00

    本次试用仍是在前文试用手机的虚机环境下进行,此次内存加到了1GB,安装完毕后整个虚机镜像大小是6.52GB,相比之前增加了一倍。虽然VS2008也可以Silverlight3,但是跟VS2010比有

  • 很有创意的 Google Chrome 浏览器新广告

    2009-12-13 3:27:00

    阅读: 26 评论: 2 作者: Gavin.Liu 发表于 2009-12-13 02:42 原文链接 英国Google团队最新制作了一段长达4分半的Google Chrome推广广告

  • 解构Unity的腳本物件模型

    2010-2-26 12:47:00

    阅读: 742 评论: 2 作者: Milo Yip 发表于 2010-02-26 00:11 原文链接 Unity 是一个以 Mono 为基础的游戏开发环境,能同时支持三种脚本语言

  • 利用Lucene.net搭建站内搜索(4)---数据检索

    2009-9-28 11:11:00

    摘要: 前面的文章,我们已经对要检索的数据创建了索引,现在要做的就是为用户提供全文搜索的功能。通过Lucene我们还可以简单而高效地对搜索结果进行访问。此文和大家简单的说说利用Lucene.net进

  • ASP.NET Connections Spring 2007 Talks

    2007-4-2 22:49:00

    Below are the slides and code for the talks I delivered at the 2007 Spring ASP.NET Connections conf