ASP.NET Core MVC如何修改默认启动URL为localhost:5000/index
ASP.NET Core 3.1 MVC 修改默认启动URL实现方案
前置说明
你已经给HomeController的Index方法单独加了[Route("Index")]特性路由,只要不给整个HomeController加控制器级别的路由特性,其余未加特性的Action(比如Login)会默认走传统路由规则,天然支持/home/login路径访问,不需要额外修改。
步骤1:修改默认启动URL
有两种修改方式,按需选择即可:
方式一:修改本地调试启动配置(仅本地调试生效)
- 打开项目根目录下
Properties文件夹中的launchSettings.json文件 - 找到你正在使用的启动配置节点(一般是对应项目名的节点,或者IIS Express节点),将
launchUrl字段的值从home/index改为Index
示例配置片段:
"profiles": { "你的项目名称": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "Index", // 仅修改该行即可 "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } }
方式二:修改全局路由规则(生产环境也生效)
如果需要部署后访问根域名localhost:5000时自动跳转到/index,可以修改Startup.cs的路由配置:
- 打开
Startup.cs文件,找到Configure方法中的UseEndpoints配置块 - 保留原有默认路由规则,新增根路径重定向规则即可,示例:
app.UseEndpoints(endpoints => { // 保留原有默认路由,保证/home/login等传统路径可访问 endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); // 新增根路径跳转规则,访问根域名时自动跳转到/index endpoints.MapGet("/", async context => { context.Response.Redirect("/Index"); await Task.CompletedTask; }); });
可选补充
如果需要同时支持/home/index路径也能访问到Index页面,只需要给Index方法再加一个路由特性即可:
[Route("Index")] [Route("Home/Index")] // 新增该行 public IActionResult Index() { return View(); }
内容的提问来源于stack exchange,提问作者DoxMark
相关产品推荐
相关产品推荐

