RedirectToAction is protected, and we can use it only inside actions. But if I want to redirect in a filter?
public class IsGuestAttribute: ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (!Ctx.User.IsGuest) filterContext.Result = (filterContext.Controller as Controller) .RedirectToAction('Index', 'Home'); } }
RedirectToActionis just a helper method to construct aRedirectToRouteResult(), so what you do is simply create a newRedirectToRouteResult()passing along aRouteValueDictionary()with values for your action.Complete sample based on code from @Domenic in the comment below: