我在我區兩條路線,一個自定義的和一個默認的備用路線,請參見下面註冊路線
var dashboardRoute = new DashboardRoute(
ObjectFactory.GetInstance<PathResolver>(),
ObjectFactory.GetInstance<VirtualPathResolver>(),
null);
context.Routes.Add(dashboardRoute);
context.Routes.MapRoute(
"Dashboard_Default", // Route name
"dashboard/{controller}/{action}/{id}", // URL with parameters
new { controller = "pages", action = "index", id = UrlParameter.Optional, area = "Dashboard" } // Parameter defaults
);
當我添加使用context.Routes.Add /圖路線的最後的路線是兩條路線不工作,但是當我在最後一個路由上使用context.MapRoute時,它的工作原理是,但我的自定義路由中的GetVirtualPath不用於actionlinks。我認爲MapRoute只是context.Routes.Add的擴展。調試路由的最佳方法是什麼?我已經使用Phil Haacks路由調試,但它不適用於我的自定義路由,有沒有其他方式來調試路由?
我真的需要一些幫助。在我的儀表板區域 我的路線註冊看起來像這樣 -
var dashboardRoute = new PagesRoute(
ObjectFactory.GetInstance<PathResolver>(),
ObjectFactory.GetInstance<VirtualPathResolver>(),
null);
context.Routes.Add("Dashboard", dashboardRoute);
context.MapRoute(
"Dashboard_default",
"dashboard/{controller}/{action}/{id}",
new { controller = "dashboard", action = "index", id = UrlParameter.Optional }
);
的PageRoute是一個定製的路線,你可以在這裏找到代碼http://bit.ly/er6HPn 通過這種途徑活躍像這樣的鏈接的偉大工程Html.ActionLink(「管理角色「,」管理員「,」帳戶「),但是當我有一個鏈接,應該像我這樣的Html.ActionLink(page.MetaData.Name,」edit「,」pages「,new {document = page} ,null)結果是http://stormbreaker.local/dashboard/pages/edit?document=Stormbreaker.Example.Models.Page,這意味着我的PageRoute中的GetVirtualPath永遠不會被使用。任何人都可以向我解釋方式,我怎麼能解決這個問題?
這正好解決了我有一個問題 - 謝謝! – RPM1984 2012-01-24 03:12:44