[MSDN]ASP.NET MVC2(3)MVC中的View实现技巧(上)
说明:本内容来自微软的webcast,讲师为苏鹏。视频没有书方便(想看哪页就看哪页),所以抄录要点和老师语录。
内容介绍
- 什么是veiw层
- 在定义中使用强类型
- 使用自定的ViewModes
- Htmlhelper类
预备知识
- 安装VS2010
- 了解ASP.NET
- 了解设计模式基本概念
什么是View层
- ViewDataDictionary类
view层的核心是ViewDataDictionary类,接受用户的请求,根据请求把查询到的结果生成HTML。请求的数据多半来自Model层的数据类实体。
数组对象,下表索引
链表对象,for each 索引
字典对象,名称索引
View的常用样式
- 继承system.web.mvc.viewpage
- 冒号<%:ViewData[“message”]%>
- 不能使用服务器控件
View容易混淆的概念
- View负责输出数据而非样式
View层无法测试
表示层通常是黑匣子测试,即模拟用户的可能的操作。
指定View
- 指定View作为输出
Content:样式
Controller:控制逻辑层
Models:数据层
Scirpt:脚本层
View:表示层
Shared:找不到Action就去shared去找,再找不到就抱错(运行时)。
Return View(~/url/other/view.aspx);
在View中使用强类型
- 在view中使用强数据类型
ViewModels
- 自定义ViewModels
一般的很少单纯的把一个表的内容显示出来,通常是从视图得到数据。是因为表中有一对多的关系存在,希望显示的时候把这结构关系都显示出来。例如,一个人有多个银行账户,通常根据人得到所有银行账户的信息。在这种情况下,需要自定义一个ViewModel,在Model层里写一个新的Model类。这个类可以包含其他所有的类,
HtmlHelper类
- 为什么我们需要它?
能更方便的控制Html样式
可以重写ViewEngine和 ActionResult
HtmlHelper类与扩展方法
- ViewPage提供了一个名为Html的Htmlhelper属性
- Using System.Web.Mvc.Html名字空间
HTML中的强类型
支持强类型,意味可以用Lambda表达式寻找变量,不必使用字符串。好处:
可以不用检查类型
可以智能感知
Html.Encode
- 等价于<%:%>
Html.TextBox
- <%:Html.TextBox(“name”)%>
- 等价于
- <input id=”name” name=”name” type=”text” value=””/>
Html.TextBoxFor 支持Lambda表达式
附:
标题:粗体+斜体+黑色
ppt文字:宋体+黑色
作者语录:斜体+黑色/红色/蓝色
我的心得:@开头