diff --git a/DNN Platform/DotNetNuke.Web.Mvc/Framework/ActionResults/DnnRedirecttoRouteResult.cs b/DNN Platform/DotNetNuke.Web.Mvc/Framework/ActionResults/DnnRedirecttoRouteResult.cs index 4eb5862dc67..16c237f5937 100644 --- a/DNN Platform/DotNetNuke.Web.Mvc/Framework/ActionResults/DnnRedirecttoRouteResult.cs +++ b/DNN Platform/DotNetNuke.Web.Mvc/Framework/ActionResults/DnnRedirecttoRouteResult.cs @@ -22,6 +22,8 @@ using System.Web.Mvc; using System.Web.Routing; using DotNetNuke.Common; +using DotNetNuke.Web.Mvc.Framework.Controllers; +using DotNetNuke.Web.Mvc.Helpers; namespace DotNetNuke.Web.Mvc.Framework.ActionResults { @@ -34,6 +36,14 @@ public DnnRedirecttoRouteResult(string actionName, string controllerName, string ControllerName = controllerName; } + public DnnRedirecttoRouteResult(string actionName, string controllerName, string routeName, RouteValueDictionary routeValues, bool permanent, DnnUrlHelper url) + : this(actionName, controllerName, routeName, routeValues, permanent) + { + Url = url; + } + + public DnnUrlHelper Url { get; private set; } + public string ActionName { get; private set; } public string ControllerName { get; private set; } @@ -45,8 +55,15 @@ public override void ExecuteResult(ControllerContext context) Guard.Against(context.IsChildAction, "Cannot Redirect In Child Action"); string url; - //TODO - match other actions - url = Globals.NavigateURL(); + if (Url != null && context.Controller is IDnnController) + { + url = Url.Action(ActionName, ControllerName); + } + else + { + //TODO - match other actions + url = Globals.NavigateURL(); + } if (Permanent) { @@ -61,3 +78,4 @@ public override void ExecuteResult(ControllerContext context) } } } + \ No newline at end of file diff --git a/DNN Platform/DotNetNuke.Web.Mvc/Framework/Controllers/DnnController.cs b/DNN Platform/DotNetNuke.Web.Mvc/Framework/Controllers/DnnController.cs index 1de35e6b0af..ef115040010 100644 --- a/DNN Platform/DotNetNuke.Web.Mvc/Framework/Controllers/DnnController.cs +++ b/DNN Platform/DotNetNuke.Web.Mvc/Framework/Controllers/DnnController.cs @@ -56,6 +56,11 @@ public PortalSettings PortalSettings get { return (ModuleContext == null) ? null : ModuleContext.PortalSettings; } } + protected override RedirectToRouteResult RedirectToAction(string actionName, string controllerName, RouteValueDictionary routeValues) + { + return new DnnRedirecttoRouteResult(actionName, controllerName, string.Empty, routeValues, false, Url); + } + protected internal RedirectToRouteResult RedirectToDefaultRoute() { return new DnnRedirecttoRouteResult(String.Empty, String.Empty, String.Empty, null, false);