Pasando parámetro personalizado en atributo personalizado – ASP.NET MVC

Mi objective es crear un atributo personalizado como System.ComponentModel.DataAnnotations.Display que me permite pasar un parámetro.

Ej .: En System.ComponentModel.DataAnnotations.Display puedo pasar un valor al parámetro Nombre

[Display(Name = "PropertyName")] public int Property { get; set; } 

Quiero hacer lo mismo pero en controladores y acciones como abajo.

 [CustomDisplay(Name = "Controller name")] public class HomeController : Controller 

y luego llene un elemento ViewBag o ViewData con su valor.

¿Puede alguien ayudarme con esto?

Gracias.

Esto es muy simple

 public class ControllerDisplayNameAttribute : ActionFilterAttribute { public string Name { get; set; } public override void OnActionExecuting(ActionExecutingContext filterContext) { string name = Name; if (string.IsNullOrEmpty(name)) name = filterContext.Controller.GetType().Name; filterContext.Controller.ViewData["ControllerDisplayName"] = Name; base.OnActionExecuting(filterContext); } } 

Luego puedes usarlo en tu controlador como se muestra abajo.

 [ControllerDisplayName(Name ="My Account Contolller"]) public class AccountController : Controller { } 

Y en su opinión, puede usarlo automáticamente con @ViewData["ControllerDisplayName"]