从不同的控制器在视图中打印自定义属性

Print custom attribute in view from different controllers

我正在尝试在 .cshtml 视图中打印自定义属性,我正在阅读此线程:asp.net mvc custom attributes 很简单。

我的自定义属性

public class TitleAttribute : ActionFilterAttribute
    {
        protected string description;

        public TitleAttribute(String descritionIn)
        {
            this.description = descritionIn;
        }

        public String Description
        {
            get
            {
                return this.description;
            }
        }
    }

但是这个属性可以在不同的控制器中使用,并在共享布局中打印这个值。

家庭控制器

[Title("Start Page")]
public ActionResult Index()
{
    return View();
}

RequestController

[Title("This page is releated with request")]
public ActionResult Index()
{
    return View();
}

是否可以在不使用的情况下打印自定义属性值Reflection

如果我明白你的意思,你需要将你的属性修改为:

public class TitleAttribute : ActionFilterAttribute
    {
        protected string description;

        public TitleAttribute(String descritionIn)
        {
            this.description = descritionIn;
        }

        public String Description
        {
            get
            {
                return this.description;
            }
        }

        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            filterContext.Controller.ViewBag.Title = description;
        }
    }