Что-то, как показано ниже - с использованием RouteBase.
RouteData rd = new RouteData(this, new MvcRouteHandler());
rd.Values.Add("controller", controllername);
rd.Values.Add("action", actionname);
rd.Values.Add("url", url);
return rd
URL-манипуляции реализующее-routebase
EDIT
Вы можете использовать url-routing-debugger для QUERY routable .. чтобы увидеть, какой зарегистрированный маршрут соответствует моей строке URL
использовать консоль диспетчера пакетов Nuget - пакетный маршрутный отладчик
Вы можете запросить RouteCollection. частичный основной код, как показано ниже
в
protected void Application_Start()
{
RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
и
public static class RouteDebugger
{
public static void RewriteRoutesForTesting(RouteCollection routes)
{
using (routes.GetReadLock())
{
bool foundDebugRoute = false;
foreach (RouteBase routeBase in routes)
{
Route route = routeBase as Route;
if (route != null)
{
route.RouteHandler = new DebugRouteHandler();
}
if (route == DebugRoute.Singleton)
foundDebugRoute = true;
}
if (!foundDebugRoute)
{
routes.Add(DebugRoute.Singleton);
}
}
}
}