繁体   English   中英

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

[英]Changing default action doesn't work for ASP.NET Core 2

在最新的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?}");
    });
}

如果您查看AccountController类,您将看到它使用Route属性进行修饰,如下所示:

[Route("[controller]/[action]")]
public class AccountController : Controller

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

public class HomeController : Controller

由于AccountController使用的是属性路由 ,因此不会使用常规路由模板来获取它。 文档解释了这种互斥性:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM