asp.net mvc 2 - Earlier ActionFilterAttribute execution in base controller - MVC2 -
i have following setup. when action executed in guestdetailscontroller, how can have[loadthemeinfo] run prior [requirecheckoutavailability] without having specify orders on child controller's attributes? filters use onactionexecuting.
[loadthemeinfo(order=1)] public class mgcontrollerbase : controller {  }  [requirecheckoutavailability(order=2)] public class guestdetailscontroller : mgcontrollerbase {  } from msdn: the order property takes integer value must 0 (the default) or greater, 1 exception. omitting order property gives filter order value of -1, indicates unspecified order. action filter in scope order property set -1 executed in undetermined order, before filters have specified order.
i prefer unspecifieds execute after specified order in case. there way trying achieve? maybe move load theme info code out of attribute , somewhere else?
set order in constructor of attribute.  in order keep execution orders in 1 place , keep easy maintain new attributes added, create enum such as:
 public enum customactionfilterorder{      loadthemeinfo = 1,      requirecheckoutavailability = 2,  } and attribute constructor like
public requirecheckoutavailability(){     this.order = (int)customactionfilterorder.requirecheckoutavailability; } 
Comments
Post a Comment