1

我非常熟悉 Web 窗体中的 URL 路由,并且对 MVC 路由有基本的了解,但遇到了一个我不知道如何连接的场景。我想将 URL 映射中不包含{controller}的 URL 映射到控制器。

我想将以下 URLS 映射到控制器“SectionHomePageController”

Books/{Action}
Cinema{Action}
Collections/{Action}
Games/{Action}

我知道路由的典型方式是 {controller}/{action} 所以我不确定如何将这些 URL 连接到控制器。那么如何连接这些 URL 呢?

4

2 回答 2

3

映射具有约束并默认为您的路线(应该在您的常规{controller}/{action}/{id}路线之上,以便优先)SectionHomePageController

        routes.MapRoute(
            name: "SectionHomePage",
            url: "{prefix}/{action}",
            constraints: new { prefix = @"(Books|Cinema|Collections|Games)" },
            defaults: new { controller = "SectionHomePageController", action = "Index" }
        );

请注意,您现在将无法拥有 BooksController、CinemaController 等,因为此路由将覆盖默认路由。

于 2013-06-18T03:09:43.810 回答
0
routes.MapRoute(
                "SomeRoute",                                              // Route name
                "Collections/SomeAction",                           // URL with parameters
                new { controller = "SectionHomePageController", action = "SomeActionOnController", id = "" }  // Parameter defaults
            );
于 2013-06-18T02:57:45.347 回答