首页 新闻 会员 周边 捐助

action中修改ModelMetadata的Properties能改吗?

0
悬赏园豆:80 [待解决问题]
大神们,请问在action中修改ModelMetadata的Properties能改吗?

ViewData.Model = new AdministrativeDivision();
var properties = ViewData.ModelMetadata.Properties;
var t1 = properties.Where(e => e.PropertyName == "AdministrativeDivisionName").FirstOrDefault();
t1.DisplayName = "卧槽";


我这里修改无效。。显示的不是卧槽。。。
难道要自定义/扩展 MetadataProvider?
大神们求助阿。。
追梦者Evan的主页 追梦者Evan | 初学一级 | 园豆:120
提问于:2014-06-09 09:43
< >
分享
所有回答(1)
0
        public virtual IEnumerable<ModelMetadata> Properties
        {
            get
            {
                if (_properties == null)
                {
                    IEnumerable<ModelMetadata> originalProperties = Provider.GetMetadataForProperties(Model, RealModelType);
                    // This will be returned as a copied out array in the common case, so reuse the returned array for performance.
                    _propertiesInternal = SortProperties(originalProperties.AsArray());
                    _properties = new ReadOnlyCollection<ModelMetadata>(_propertiesInternal);
                }
                return _properties;
            }
        }

 

它是只读的

不浮躁 | 园豆:144 (初学一级) | 2014-06-09 14:23

  ModelMetadataProviders.Current = new MyMetadataProvider("Name", true);

通过自定义已经实现功能,但是如果遇到并发可能有问题。。。

 

支持(0) 反对(0) 追梦者Evan | 园豆:120 (初学一级) | 2014-06-09 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册