A: 

It's just a hack but maybe it'll suit you (and maybe it'll work ;-))

routes.MapRoute("register",
                    "register/{fake}",
                    new {controller = "Users", action = "Register", fake = ""}
);
Kamil Szot
+2  A: 

You can create a new Route which overrides the GetVirtualPath method. In this method you add a trailing slash to the VirtualPath. Like this:

public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
     VirtualPathData path = base.GetVirtualPath(requestContext, values);

     if (path != null)
         path.VirtualPath = path.VirtualPath + "/";
     return path;
}

For brevity I posted the whole example on CodePaste.net

Now all you have to do is register the routes with routes.MapRouteTrailingSlash() instead of routes.MapRoute().

routes.MapRouteTrailingSlash("register",
                             "register",
                             new {controller = "Users", action = "Register"}
);

The route will then add a slash to the path when the GetVirtualPath() is called. Which RedirectToAction() will do.

Manticore
Thanks Manticore, will check.
Galilyou
CodePaste.net Broken link
John
A: 

CodePaste.net link is expired. Any chance of reposting?

whit537