从不同的控制器打印自定义属性

时间:2015-01-30 14:57:36

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我正在尝试在.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;
            }
        }
    }

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

的HomeController

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

RequestController

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

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

1 个答案:

答案 0 :(得分:1)

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

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;
        }
    }