首页 > 解决方案 > 升级到 ASP.NET Core MVC 2.2 后默认路由操作不起作用

问题描述

将我的应用程序从 asp.net core 2.1 更新到 2.2 后,默认路由操作似乎不适用于位于单独类库中的控制器。

例如,我有这样的默认路由:

routes.MapRoute(
            name: "default",
            template: "{controller}/{action}"
            ,defaults: new { controller = "Home", action = "index" }
            );

在我的类库中,我有一个控制器 SiteAdminController,它有一个 Index 操作方法。

当我访问 url /siteadmin 我得到 HomeController 索引而不是 SiteAdminController 的索引操作

如果我使用 /siteadmin/index 那么它可以工作

如何在不要求在 url 中明确显示索引操作的情况下使其工作?它在 2.1 中运行良好

标签: asp.net-coreasp.net-core-mvc

解决方案


您是否尝试过在模板中设置默认值?

app.UseMvc(routes =>
        {
            routes.MapRoute(
              name: "default", 
              template: "{controller=Home}/{action=Index}");
        }
);

这在 Core 2.2 中对我有用


推荐阅读