/// <summary> /// Redirects to the specified action 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="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="RedirectToActionResult"/> for the response.</returns> public static RedirectToActionResult RedirectToActionPermanent <TRedirectController>( this Controller controller, Expression <Action <TRedirectController> > action, object routeValues) { var expressionRouteValues = ExpressionRouteHelper.Resolve(action, routeValues); return(controller.RedirectToActionPermanent( expressionRouteValues.Action, expressionRouteValues.Controller, routeValues)); }
/// <summary> /// Redirects to the specified action 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="action"> /// The <see cref="Expression{TDelegate}"/>, from which action name, /// controller name and route values are resolved. /// </param> /// <returns>The created <see cref="RedirectToActionResult"/> for the response.</returns> public static RedirectToActionResult RedirectToActionPermanent <TRedirectController>( this Controller controller, Expression <Action <TRedirectController> > action) { return(controller.RedirectToActionPermanent(action, routeValues: null)); }