更改默认操作不适用于ASP.NET Core 2

Fre*_*ood 3 c# asp.net-core-mvc asp.net-core asp.net-core-2.0

在最新的ASP.NET MVC CORE 2默认模板上,我试图通过修改控制器和操作来更改默认操作,如下所示.我希望看到登录页面为默认,但我有404 http错误.我做错了什么?

您可以在默认的ASP.NET CORE 2 MVC项目上验证此问题.

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Account}/{action=Login}/{id?}");
    });
}
Run Code Online (Sandbox Code Playgroud)

Kir*_*kin 6

如果你看一下这个AccountController类,你会看到它用一个Route属性装饰,如下所示:

[Route("[controller]/[action]")]
public class AccountController : Controller
Run Code Online (Sandbox Code Playgroud)

但是,如果你看一下这个HomeController类,你会发现它没有用这样的属性装饰:

public class HomeController : Controller
Run Code Online (Sandbox Code Playgroud)

由于AccountController正在使用属性路由,因此不会使用常规路由模板来获取它.该文档解释这种相互排斥:

定义属性路由的动作不能通过传统路径到达,反之亦然.