2010-10-14 127 views
0

我有一个路线路由在asp.net mvc的

routes.MapRoute(
    "BuildingProject", 
    "BuildingProject/{action}/{id}", 
    new { 
    controller = "Home", 
    action = "Index", 
    id = "" 
}); 

我希望它表现得像缺省路由,即对网址与BuildingProject开始像http://localhost:4030/BuildingProject/DeleteAll。 我试图

routes.MapRoute(
    "BuildingProject", 
    "BuildingProject/{action}/{id}", 
    new { 
    controller = "Home", 
    action = "", 
    id = "" 
}); 

它worked.But上键入本地主机:4030/BuildingProject它不重定向到它的指数,但显示错误。
。如何做到这一点。

回答

0

试试这个:

routes.MapRoute("BuildingProject", "BuildingProject/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 
+0

sorru但它没有工作。 – 2010-10-14 15:07:11

+0

你想让所有的网址指向相同的动作吗?然后你可以尝试下面的代码:routes.MapRoute(null,“BuildingProject/{* catchall}”,new {controller =“Home”,action =“Index”}); – 2010-10-14 15:34:57

1

如果你的路线是这样的:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     "BuildingProject", 
     "BuildingProject/{action}/{id}", 
     new 
     { 
      controller = "Home", 
      action = "Index", 
      id = UrlParameter.Optional 
     } 
    ); 
} 

然后http://localhost:4030/BuildingProject/DeleteAll将呼吁Home控制器DeleteAll行动,如果你浏览到http://localhost:4030/BuildingProject,该Index动作会在同一个控制器上调用。