我是ASP.NET MVC的新手,并尝试学习ASP.NET MVC 5.我试图通过从头开始创建一个示例项目而不脚手架来学习它。我知道它通过调用routes.MapRoute
方法,可以在RouteConfig.cs
中指定默认控制器和默认操作。但是我想知道,我是否可以设置默认控制器&使用路由属性的动作无需使用RouteConfig.cs
。
edit :我发现,可以通过在RouteConfig.cs
的RegisterRoutes
方法中添加以下代码并删除其他行来执行此操作。
routes.MapMvcAttributeRoutes();
之后,在我们要设置默认值的控制器操作中,只需在操作上方添加[Route("~/")]
属性即可。这应该做到。
但是,如果形式身份验证,我们将具有登录视图。如果我们没有传统的路由,那么重定向登录视图将失败,因为将是主页的默认控制器的基于属性的路由,并没有重定向到登录。如果我们还将[Route("~/")]
属性添加到登录操作中,则会引发一个错误,说"发现多个控制器类型匹配URL。如果多个控制器上的属性路由与所请求的URL匹配。Div>
传统路由和属性路由可以一起工作。只是不要删除RouteConfig.cs
中的其他行,并将routes.MapMvcAttributeRoutes();
放在其他行之上匹配要求的URL