2
我以爲我可以在我的混合ASP.NET + MVC應用程序中爲所有路由設置友好的URL,但它不像我期望的那樣工作。這裏是我的路由定義設置:混合使用ASP.NET和MVC路由
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Design-Fancy", "Design/Fancy/{*queryvalues}", "~/Design/example10.aspx", true);
routes.MapPageRoute("Design-Simple", "Design/Simple/{*queryvalues}", "~/Design/example5.aspx", true);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
雖然這個工程路線* .aspx頁,被例如定義爲「家庭」爲控制器和在同一頁上的任何剃刀動作標記「關於」因爲Action實際上在頁面源中呈現爲'http://..../Design/Fancy?action=About&controller=Home'。所以,這打破了所有的導航菜單網址等,我一定是做錯了!
你的剃鬚刀動作是什麼樣子的? –
您可以嘗試通過在「Design-Fancy」和「Design-Simple」路由之前放置「Default」路由來更改映射路由的順序,因爲首先映射的路由具有更高的優先級。但是,這可能會破壞您的Fancy和Simple路線的正常行爲。 – Chase
https://www.packtpub.com/books/content/mixing-aspnet-webforms-and-aspnet-mvc – RoteS