Hi guys,
I actually took the easy way out and just created an extension method.
1 /// <summary>
2 /// Redirects to action.
3 /// </summary>
4 /// <param name="filterContext">The filter context.</param>
5 /// <param name="responseCode">The response code.</param>
6 /// <param name="actionName">Name of the action.</param>
7 public static void RedirectToAction(this ControllerContext filterContext, string actionName)
8 {
9 if (String.IsNullOrEmpty(actionName))
10 throw new ArgumentNullException("actionName");
11
12 RouteValueDictionary values = new RouteValueDictionary();
13 values.Add("action", actionName);
14
15 RedirectToAction(filterContext, values);
16 }
17
18 /// <summary>
19 /// Redirects to action.
20 /// </summary>
21 /// <param name="filterContext">The filter context.</param>
22 /// <param name="responseCode">The response code.</param>
23 /// <param name="actionName">Name of the action.</param>
24 /// <param name="controllerName">Name of the controller.</param>
25 public static void RedirectToAction(this ControllerContext filterContext, string actionName, string controllerName)
26 {
27 if (String.IsNullOrEmpty(actionName))
28 throw new ArgumentNullException("actionName");
29
30 if (String.IsNullOrEmpty(controllerName))
31 throw new ArgumentNullException("controllerName");
32
33 RouteValueDictionary values = new RouteValueDictionary();
34 values.Add("action", actionName);
35 values.Add("controller", controllerName);
36
37 RedirectToAction(filterContext, values);
38 }
39
40 /// <summary>
41 /// Redirects to action.
42 /// </summary>
43 /// <param name="filterContext">The filter context.</param>
44 /// <param name="responseCode">The response code.</param>
45 /// <param name="values">The values.</param>
46 public static void RedirectToAction(this ControllerContext filterContext, RouteValueDictionary values)
47 {
48 VirtualPathData virtualPath = RouteTable.Routes.GetVirtualPath(filterContext, values);
49
50 string url = null;
51 if (virtualPath != null)
52 url = virtualPath.VirtualPath;
53
54 filterContext.HttpContext.Response.Redirect(url);
55 }