/// <summary> /// Redirects to the specified route with <see cref="RedirectToActionResult.Permanent"/> set to true by /// using <see cref="Expression{TDelegate}"/> for an action method, /// from which action name, controller name and route values are resolved. /// </summary> /// <typeparam name="TRedirectController">Controller, from which the action is specified.</typeparam> /// <param name="routeName">The name of the route to use for generating the URL.</param> /// <param name="action"> /// The <see cref="Expression{TDelegate}"/>, from which action name, /// controller name and route values are resolved. /// </param> /// <returns>The created <see cref="RedirectToRouteResult"/> for the response.</returns> public static RedirectToRouteResult RedirectToRoutePermanent <TRedirectController>( this Controller controller, string routeName, Expression <Action <TRedirectController> > action) { return(controller.RedirectToRoutePermanent(routeName, action, routeValues: null)); }
/// <summary> /// Redirects to the specified route with <see cref="RedirectToActionResult.Permanent"/> set to true by /// using <see cref="Expression{TDelegate}"/> for an action method, /// from which action name, controller name and route values are resolved, /// and the specified additional route values. /// </summary> /// <typeparam name="TRedirectController">Controller, from which the action is specified.</typeparam> /// <param name="routeName">The name of the route to use for generating the URL.</param> /// <param name="action"> /// The <see cref="Expression{TDelegate}"/>, from which action name, /// controller name and route values are resolved. /// </param> /// <param name="routeValues">Additional route data to use for generating the URL.</param> /// <returns>The created <see cref="RedirectToRouteResult"/> for the response.</returns> public static RedirectToRouteResult RedirectToRoutePermanent <TRedirectController>( this Controller controller, string routeName, Expression <Action <TRedirectController> > action, object routeValues) { var expressionRouteValues = ExpressionRouteHelper.Resolve(action, routeValues, addControllerAndActionToRouteValues: true); return(controller.RedirectToRoutePermanent( routeName, expressionRouteValues.RouteValues)); }