代码之家  ›  专栏  ›  技术社区  ›  user137348

ASP.NET MVC自定义元数据提供程序

  •  2
  • user137348  · 技术社区  · 16 年前

    我正在构建一个自定义元数据提供程序,我想访问 CreateMetadata 方法。

    public class IcpMetadataProvider : AssociatedMetadataProvider
    {
    
        protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
        {
    
            var metadata = new ModelMetadata(this, containerType, modelAccessor, modelType, propertyName);
    
            //Is null when the model is of reference type
            var model = metadata.Model;
    
    
            return metadata;
        }
    }
    

    当当前模型值为string类型时,可以在 metadata.Model . 但当模型为引用类型时,该值为空。

    或者也许有什么方法可以将自定义数据传递给这个方法?

    1 回复  |  直到 15 年前
        1
  •  1
  •   murki    15 年前

    引用brad wilson的话,您需要“调用base.createmetadata,这样您就可以从dataannotations中获取充满值的modelmetadata,然后用自己属性中的值对其进行补充。”

    参考链接: http://bradwilson.typepad.com/blog/2010/01/why-you-dont-need-modelmetadataattributes.html