网站上有常规页面,例如:
foo.com/about
foo.com/contact
我使用单控制器。
还有管理员页面,我有一个单独的控制器: foo.com/admin/createsomething
这是我的路由配置,它没有选择HomeController动作。
routes.MapRoute(
name: "Default",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Admin",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我该如何解决?
答案 0 :(得分:0)
您需要打破默认约定的网址的路由:
routes.MapRoute(
name: "About",
url: "about",
defaults: new { controller = "Home", action = "About" }
);
routes.MapRoute(
name: "Contact",
url: "contact",
defaults: new { controller = "Home", action = "Contact" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
然后您的管理员网址应该使用默认路由解析,其中您有AdminController
和CreateSomething
操作方法