1

网站上有常规页面,例如:

foo.com/about
foo.com/contact

我对这些使用单个控制器。

还有管理员页面,我有一个单独的控制器:foo.com/admin/createsomething

这是我的路由配置,它没有选择 HomeController Actions。

    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 }
    );

我该如何解决?

4

1 回答 1

0

您需要打破默认约定的 url 路由:

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 }
);

那么您的管理员 url 应该使用默认路由解析,其中您有一个AdminController和一个CreateSomething操作方法

于 2012-12-07T16:58:07.413 回答