博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IMetadataAware接口的特性定制Model元数据
阅读量:4925 次
发布时间:2019-06-11

本文共 1898 字,大约阅读时间需要 6 分钟。

 

第一步创建元数据类

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Reflection; 5 using System.Web; 6 using System.Web.Mvc; 7  8 namespace MvcApplication19 9 {10     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]11     public class DisplayTextAttribute : Attribute, IMetadataAware12     {13         private static Type staticResourceType;14         public string DisplayName { get; set; }15         public Type ResourceType { get; set; }16 17         public DisplayTextAttribute()18         {19             this.ResourceType = staticResourceType;20         }21 22         public void OnMetadataCreated(ModelMetadata metadata)23         {24             this.DisplayName = this.DisplayName ?? (metadata.PropertyName ?? metadata.ModelType.Name);25             if (null == this.ResourceType)26             {27                 metadata.DisplayName = this.DisplayName;28                 return;29             }30             PropertyInfo property = this.ResourceType.GetProperty(this.DisplayName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);31             metadata.DisplayName = property.GetValue(null, null).ToString();32         }33 34         public static void SetResourceType(Type resourceType)35         {36             staticResourceType = resourceType;37         }38     }39 }
View Code

第二步创建Person类

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5  6 namespace MvcApplication19.Models 7 { 8     public class Person 9     {10         [DisplayText]11         public string  Name { get; set; }12 13          [DisplayText]14         public string Sex { get; set; }15 16          [DisplayText]17         public string BirthDay { get; set; }18          [DisplayText]19         public string Dep { get; set; }20     }21 }
View Code

 

转载于:https://www.cnblogs.com/laopo/p/4781598.html

你可能感兴趣的文章
ES6 语法之import export
查看>>
网页上实现 Project 甘特图
查看>>
AttributeError: '_csv.reader' object has no attribute 'next'
查看>>
八大排序算法
查看>>
Meteor部
查看>>
WindowsPhone 在 根据公历 获取月球日期数据
查看>>
数字金额大小写转换
查看>>
【翻译mos文章】Linux x86 and x86-64 系统SHMMAX最大
查看>>
AWS Credentials 使用
查看>>
iOS 多线程,ARC
查看>>
Javascript小技巧,去掉小数位并且不会四舍五入
查看>>
指定初始化方法
查看>>
使用eclipse进行重构
查看>>
vs mfc 静态文本 改变字体大小
查看>>
Hidden Word
查看>>
radios组件
查看>>
Android客户端采用Http 协议Post方式请求与服务端进行数据交互
查看>>
《浙大版-数据结构(第二版)》习题2.5 两个有序链表序列的合并(15 分)<有疑问?变化之后 L1 L2没办法NULL >...
查看>>
Ubuntu18.04 安装Chrome浏览器
查看>>
Linux命令总结_文件的输入与 输出
查看>>