0

我想从Controller用户点击和页面中的. 我试过这个,但它给了我一个 404 错误。HomeurlAboutContactASP.NET MVC sample application

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

当我删除这一切都很好。
注意我只想在 Controller 是 Home 时删除 Controller 名称。其他控制器应保持不变。此外,我将代码保存在上面的Route.Config文件中

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

 routes.MapRoute(
     name: "Default",
     url: "{controller}/{action}/{id}",
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

要求的结果

abc.com/Home/About应显示为abc.com/About
abc.com/Home/Contact应显示为abc.com/Contact

4

2 回答 2

1

您应该在 global.asax 中映射新路由(在默认路由之前添加它),例如:

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

// default route  any defalt you want
routes.MapRoute("Default", "{controller}/{action}/{id}", new {controller = "Account", action = "Login", id = UrlParameter.Optional} );
于 2013-09-05T04:35:08.597 回答
-2
 routes.MapRoute(
 name: "Default",
 url: "{controller}/{action}/{id}",
 defaults: new { controller = "DefaultControllerName", action = "Index", id = UrlParameter.Optional }
    );

如果您将指定控制器名称,那么这将与该控制器名称一起使用。如果不是默认情况下,它将控制器名称作为DefaultControllerName

于 2013-09-05T04:33:06.123 回答