I am having an action and attribute as following, i have over-ridden  OnActionExecuting and want to read attribute in that method
[MyAttribute(integer)]
public ActionResult MyAction()
{
}
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    //here i want to read integer passed to action using Attribute
}
                Try it:
Controller
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
  foreach (var filter in filterContext.ActionDescriptor.GetCustomAttributes(typeof (MyAttribute), false).Cast<MyAttribute>())
  {
    var desiredValue = filter.Parameter;
  }
  base.OnActionExecuting(filterContext);
}
Filter
public class MyAttribute : FilterAttribute, IActionFilter
{
  private readonly int _parameter;
  public MyAttribute(int parameter)
  {
    _parameter = parameter;
  }
  public int Parameter { get { return _parameter; } }
  public void OnActionExecuted(ActionExecutedContext filterContext)
  {
    //throw new NotImplementedException();
  }
  public void OnActionExecuting(ActionExecutingContext filterContext)
  {
    //throw new NotImplementedException();
  }
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With