.NET Core 6混用控制器视图与Razor Pages出现404错误求助
.NET Core 6同时使用控制器视图和Razor Pages出现404的解决办法
问题根源
你仅添加了Razor Pages的服务注册,但未在请求管道中配置对应的路由规则,同时控制器的路由也可能未正确设置,导致根路径找不到可匹配的内容。
修复步骤
补全Program.cs的路由配置
在var app = builder.Build();之后,必须同时配置控制器路由和Razor Pages路由,代码如下:// 配置控制器视图的默认路由 app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); // 启用Razor Pages路由 app.MapRazorPages();两个配置都不能少,顺序不影响。
检查默认入口是否存在
- 若想以Razor Pages为首页,确认项目里有
Pages/Index.cshtml,且文件开头有@page指令。 - 若想以控制器视图为首页,确认存在
HomeController类,里面有Index方法,且对应Views/Home/Index.cshtml视图文件。
- 若想以Razor Pages为首页,确认项目里有
确认NuGet包版本匹配
确保安装的Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation包是6.x版本,和.NET Core 6兼容。可以用命令重新安装:dotnet add package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation --version 6.0.26清理重建项目
删除项目下的bin和obj文件夹,然后执行dotnet clean和dotnet build命令,重新生成后再运行项目。
内容的提问来源于stack exchange,提问作者C_20_10_42 jobair uddin
相关产品推荐
相关产品推荐

