.NET 5下ASP.NET Core MVC如何设置StaffAug区域Login/Index为默认页
将StaffAug区域下Login/Index设为ASP.NET Core MVC 5站点默认页的方法
前置检查
首先确认项目已经正确注册了StaffAug区域路由,打开Startup.cs的Configure方法,确保UseEndpoints配置块中已添加区域路由映射:
app.UseEndpoints(endpoints => { // 先注册区域路由 endpoints.MapAreaControllerRoute( name: "StaffAug", areaName: "StaffAug", pattern: "StaffAug/{controller=Home}/{action=Index}/{id?}"); // 原有默认路由 endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });
如果没有上述的MapAreaControllerRoute配置,请先补充。
方案1:修改全局默认路由(最直接,推荐)
直接修改默认路由的参数默认值,指定默认匹配的区域、控制器、动作,把原有默认路由修改为:
endpoints.MapControllerRoute( name: "default", pattern: "{controller=Login}/{action=Index}/{id?}", defaults: new { area = "StaffAug" });
修改后访问站点根路径时,会自动匹配到StaffAug区域下的Login控制器的Index动作。
方案2:根路径重定向(不修改全局默认路由,适合同时存在非区域控制器的场景)
如果不想修改全局默认路由避免影响其他非区域的控制器路由,可以添加专门的根路径重定向规则,在UseEndpoints配置块最前面添加以下代码:
endpoints.MapGet("/", async context => { context.Response.Redirect("/StaffAug/Login/Index"); await Task.CompletedTask; });
验证注意事项
- 确认
Areas/StaffAug/Controllers/目录下存在LoginController.cs,且包含无参数的public IActionResult Index()动作方法 - 确认视图文件路径为
Areas/StaffAug/Views/Login/Index.cshtml - 如果站点启用了身份验证中间件,请确认
Login/Index允许匿名访问,避免出现循环重定向问题
内容的提问来源于stack exchange,提问作者Mohan Raju
相关产品推荐
相关产品推荐

