ASP.NET 核心剃刀页面 - 将索引路由添加到另一个页面



长话短说:

我有一个页面调用 foo.cshtml,我也想处理索引路由。

即 pages/bar/foo.cshtml

我想导航到/酒吧由 foo 处理。

我讨厌 index.chstml 名称,因为当您加载 5 个索引页面以提供您正在查看的线索 wtf 时,在 IDE 中会很痛苦。

有没有一种简单的方法来处理多个路由或更改特定文件夹的默认路由?是的,我知道我可以制作一个重定向的索引页面。宁愿避免混乱。

您可以使用许多路由,它们从上到下进行评估。您可以使用约束来筛选出路由。

// Routing
app.UseMvc(routes =>
{
    // pages/bar/foo.cshtml
    routes.MapRoute(
        name: "Foo",
        template: "{controller}/bar/{action}/{id?}/{id2?}",
        defaults: new { controller = "pages", action = "foo" },
        constraints: new { controller = "pages" }
    );
    // User route
    routes.MapRoute(
        name: "User",
        template: "{controller}/{action}/{id?}/{id2?}",
        defaults: new { controller = "home", action = "index" },
        constraints: new { controller = "user" }
    );
    // Auth route
    routes.MapRoute(
        name: "Auth",
        template: "{controller}/{action}/{id?}/{id2?}",
        defaults: new { controller = "home", action = "index" },
        constraints: new { controller = "auth" }
    );
    // Default route (Controller as default)
    routes.MapRoute(
        name: "Default",
        template: "{action}/{id?}/{id2?}",
        defaults: new { controller = "home", action = "category" }
    );
});

最新更新