ASP。净MVC模型元数据(四)

  

ASP。净MVC模型元数据(四)

前言

,

<强>元模型数据 <李>

<李>

<李>

<李>

<李>

<李>

<李>

,

代码1 - 1

,public  class  MyCustomModelMetadataProvider: DataAnnotationsModelMetadataProvider   ,,,{   ,,,,,,,protected  override  ModelMetadata  CreateMetadata (IEnumerable, modelAccessor,, Type  modelType,, string  propertyName)   ,,,,,,,{   ,,,,,,,,,,,DataAnnotationsModelMetadata  result =, new  DataAnnotationsModelMetadata (containerType,这一点,还以为,modelAccessor, modelType,, propertyName,, displayColumnAttribute);      ,,,,,,,,,,,return 结果;   ,,,,,,,}   ,,,}

 ModelMetadataProviders.Current =, new  MyCustomModelMetadataProvider (); 

protected  override  ModelMetadata  CreateMetadata (IEnumerable, modelAccessor,, Type  modelType,, string  propertyName)   ,,,,,,,{   ,,,,,,,,,,,List, attributeList =, new  List(属性);   ,,,,,,,,,,,DisplayColumnAttribute  DisplayColumnAttribute =, attributeList.OfType () .FirstOrDefault ();   ,,,,,,,,,,,DataAnnotationsModelMetadata  result =, new  DataAnnotationsModelMetadata (containerType,这一点,还以为,modelAccessor, modelType,, propertyName,, displayColumnAttribute);   ,,,,,,,,,,,   ,,,,,,,,,,,//,Do  [HiddenInput], before  [UIHint], so 你还要override 从而template 提示   ,,,,,,,,,,,HiddenInputAttribute  HiddenInputAttribute =, attributeList.OfType () .FirstOrDefault ();   ,,,,,,,,,,,if  (hiddenInputAttribute  !=, null)   ,,,,,,,,,,,{   ,,,,,,,,,,,,,,,result.TemplateHint =,“HiddenInput”;   ,,,,,,,,,,,,,,,result.HideSurroundingHtml =, ! hiddenInputAttribute.DisplayValue;   ,,,,,,,,,,,}      ,,,,,,,,,,,//,prefer 我方表示歉意(UIHint (“…”, PresentationLayer =, MVC)], but  will  fall  back 用[UIHint (“…”)   ,,,,,,,,,,,IEnumerable, uiHintAttributes =, attributeList.OfType ();   ,,,,,,,,,,,UIHintAttribute  UIHintAttribute =, uiHintAttributes.FirstOrDefault (a =祝辞,String.Equals (a.PresentationLayer,“MVC, StringComparison.OrdinalIgnoreCase))   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,? ?,uiHintAttributes.FirstOrDefault (a =祝辞,String.IsNullOrEmpty (a.PresentationLayer));   ,,,,,,,,,,,if  (uiHintAttribute  !=, null)   ,,,,,,,,,,,{   ,,,,,,,,,,,,,,,result.TemplateHint =, uiHintAttribute.UIHint;   ,,,,,,,,,,,}      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

ASP。净MVC模型元数据(四)