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