ASP.NET MVC 6 中默认 url 的路由错误

Routing error with default url in ASP.NET MVC 6

我在 MVC 6 Web 应用程序中遇到路由问题:当我在默认使用的控制器中设置路由参数时,应用程序发送 404 错误。

我的路由配置:

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

我的仪表板控制器(应用程序工作):

[Authorize]
public class DashboardController : Controller
{
     public DashboardController()
     { }

     [HttpGet]
     public IActionResult Index() => View(new IndexViewModel());
}

相同的仪表板控制器(应用程序响应 404 错误):

[Authorize]
[Route("[controller]")]
public class DashboardController : Controller
{
     public DashboardController()
     { }

     [HttpGet]
     [Route("[action]")]
     public IActionResult Index() => View(new IndexViewModel());
}

发生这种情况的原因是通过 routes.MapRoute 指定的路由仅适用于 使用基于属性的路由的控制器。由于您的第二个示例使用基于属性的路由,因此只能通过属性中指定的路由访问该控制器。所以只能在 /Dashboard/Index

到达