网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 预定义模板

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/05
们说过,ASP.NET 内部采用基于类型的模板匹配策略,如果通过ModelMetadata对象表示的Model元数据不能找到一个具体的模板,最终都会落到Object模板上。Object模板对目标对象的呈现方式很简单,它通过ModelMetadata的Proeprties属性得到所有基于属性的Model元数据。针对每个表示属性Model元数据的ModelMetadata,它会根据DisplayName或者属性名称生成一个标签(实际上是一个内部文本为显示名称的<div>元素),然后根据元数据将属性值以显示或者编辑的模式呈现出来。

  1.  public class Address  
  2.  {  
  3.      [DisplayName("省")]  
  4.      public string Province { get; set; }  
  5.      [DisplayName("市")]  
  6.      public string City { get; set; }  
  7.      [DisplayName("区")]  
  8.      public string District { get; set; }  
  9.      [DisplayName("街道")]  
  10.     public string Street { get; set; }  
  11. }  

针对上面定义得这个表示地址的Address。现在我们创建一个具体的Address对象并通过如下的方式调用HtmlHelper<TModel>的DisplayForModel方法将它呈现在以此作为Model的View中。

  1. @model Address  
  2. @Html.DisplayForModel()  

从如下所示的HTML中我们可以看出作为Model的Address对象的所有属性都以显示模式呈现出来,而在前面还具有相应的标签。

  1. <div class="display-label">省</div>   
  2. <div class="display-field">江苏省</div>   
  3. <div class="display-label">市</div>   
  4. <div class="display-field">苏州市</div>   
  5. <div class="display-label">区</div>   
  6. <div class="display-field">工业园区</div>   
  7. <div class="display-label">街道</div>   
  8. <div class="display-field">星湖街328号</div>   

值得一提的是,Object模板在对属性进行遍历的过程中,不论是显示模式还是编辑模式,只会处理非复杂类型。也就是如果属性成员是一个复杂类型(不能支持从字符串类型的转换),它不会出现在最终生成的HTML中。

  1.  public class Contact  
  2.  {  
  3.      [DisplayName("姓名")]  
  4.      public string Name { get; set; }  
  5.      [DisplayName("电话")]  
  6.      public string PhoneNo { get; set; }  
  7.      [DisplayName("Email地址")]  
  8.      public string EmailAddress { get; set; }  
  9.      [DisplayName("联系地址")]  
  10.     public Address Address { get; set; }  
  11. }  

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号