首页 新闻 会员 周边 捐助

自己定义了一个MVC标签,但是里面的OnMetadataCreated方法根本没有走。请问是怎么回事?

0
[待解决问题]
        public ActionResult T2()
        {
            TestModel tm = new TestModel()
            {
                Name = "Namessss",
            };

            return View(tm);
        }


    public class TestModel
    {

        [Test("csss")]
        [UIHint("LayuiText")]
        public string Name { get; set; }
    }
    [AttributeUsage(AttributeTargets.Property)]
    public sealed class TestAttribute : Attribute, IMetadataAware
    {

        public TestAttribute(string displayName)
        {
            this.DisplayName = displayName;
        }

        /// <summary>
        /// 获取或设置模型的显示名称。
        /// </summary>
        public string DisplayName { get; private set; }

        public string TemplateHint { get; set; }

        public  void OnMetadataCreated(ModelMetadata metadata)
        {

            metadata.DisplayName = this.DisplayName;
            metadata.TemplateHint = this.GetTemplateHint();
            metadata.AdditionalValues.Add("Layui.Text.DisplayName", this.DisplayName);
            //throw new NotImplementedException();
        }

        /// <summary>
        /// 获取TemplateHint值,如果TemplateHint值为空则使用特性名。
        /// </summary>
        /// <returns>TemplateHint值。</returns>
        private string GetTemplateHint()
        {
            return string.IsNullOrEmpty(this.TemplateHint) ? this.GetType().Name.Replace("Attribute", string.Empty) : this.TemplateHint;
        }
    }
藍星石的主页 藍星石 | 菜鸟二级 | 园豆:202
提问于:2017-11-11 14:07
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册