WebCast20100904第4講MVC中的View层使用技巧(下讲).doc

WebCast20100904第4講MVC中的View层使用技巧(下讲).doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WebCast20100904第4講MVC中的View层使用技巧(下讲)

第4讲:MVC中的View层使用技巧(下讲) 2010.9.4 苏鹏 内容介绍 -HtmlHelper类 -ViewEngine引擎深入介绍 ? 预备知识 -安装Visual Studio 2010 Express -了解ASP.Net -了解设计模式基本概念 ? Html.ActionLink和Html.RouteLine -这两个控件都根据用户输入生成导航信息 -ActionLink根据生成调用另外Controller的链接 ? 指定导航的Action 指定导航的Controller和Action 指定Action访问的参数 指定其它参数 RouteLink ? ? Html.BeginForm -这一标记完全模拟form标记 ? BeginForm标记与其他的HtmlHelper标记略有不同,其它的HtmlHelper标记是单个出现的,而BeginForm标记是成对出现的,它完整模仿了html当中使用的form/form。 第一种方式 第二种方式(推荐) ? Html.Hidden -用于生成隐藏文本 ? Html.DropDownList和Html.ListBox -用于显示列表或选择值 -用于限制用户的输入 强类型支持 ? ? Html.PassWord -Password的工作方式和textbox一样,只是提交以后数据会自动清空 ? (纠正:上图中的input控件的id属性的值应该是my_upwd) ? Html.RadioButton -生成一组选择值,并要求用户选择其一 ? Html.Partial和Html.RenderPartial -用于输出局部html片段 ? 它有四种重载 使用方式 注意: RenderPartial由于是直接Response.Write输出,所以%%不需要冒号 Partial是转义之后的,需要编译一下,所以%:%有冒号 ? RenderPartial和Partial的本质上是一致的,不同之处是RenderPartial是直接输出Html的,Partial也是输出Html,但是它中间有个转义。RenderPartial在使用过程中,实际上是使用Response.Write方式直接往页面输出,它的性能在大型访问时会比Partial好很多,所以很多情况下我们会使用它来做相应的输出。 ? ? Html.Action和Html.RenderAction -用于实现指定Controller的指定Action调用 ? 在Controller里面有若干个函数,这些函数称为Action。它们的特点是,每一个Controller中的Action一般都返回ResultAction的结果。而ResultAction会作为View放到View层当中去,它们的关系大致是这样。但是有些情况下我们希望只输出或调用指定的Action,我们就使用Html.Action这种方法。我们刚刚介绍的Partial是把View当中的数据输出成独立文件,那么Action和RenderAction就是执行独立的Controller中的一个Action,并把结果返回出来。Action提供大量可扩展方法用于实现,因为每个ChildAction里面都可能会有一些Model数据,每个独立的Controller就可以被混合调用。 默认情况下,我们在返回的View中View一定是从某一个固定的Controller拿到的数据,很难在一个View中获得多个Controller的数据,因为Route不允许这么做。例如,Home文件夹下的View只能从HomeController中拿数据,如果想在HomeController和AccountController 中拿数据,这样就比较困难,而Html.Action就是专门为解决这个问题而来的。如果在Action上面声明一个Attribute的属性,叫ChildAction,那么在View调用的时候,就可以使用Html.Action把这个Action输出。 其他Controller的View调用MyController的Action ? 需要注意的是,一旦Action标记为ChildAction,它就不能被Url直接引用。还有一点,Controller里面有个Context控件上下文,它可以判定某个Action是不是ChildAction,如果是,这个Action就不能加其它标签,例如授权。如果一个Action是ChildAction,它就能在任意页面被引用,从而这种情况下不能再对它进行授权,这个逻辑也很容易理解。 另外一个是不能使用OutputCache进行设定,OutputCache一旦缓存之后,在不同页面调用这个ChildActi

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档