.NET 6 在其所在的确切目录中搜索时返回未找到的视图

.NET 6 returning view not found while it searches in the exact directory it is located in

我最近正在使用新的最小托管模型从 .NET 5 MVC 应用程序迁移到 .NET 6 MVC 应用程序。在此迁移过程中,我一次又一次地遇到“未找到视图”InvalidOperationException。 证明视图位于正确的地图中,并且该位置的程序 'searched':

如您所见,所有地图和文件名都对应。

我已经按照微软的迁移指南一步步进行了,但是没有用。我个人认为添加端点有问题,但我已经尝试了每一个可能的选项。NET 6 允许我添加默认控制器路由。

app.UseEndpoints(endpoints => {
    endpoints.MapDefaultControllerRoute();
    endpoints.MapRazorPages();
});

或这个

app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");

当然还有这个

app.UseEndpoints(endpoints => {
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
});

但没有任何效果。谷歌搜索后,我还没有真正在网上找到任何解决方案,而这个问题只是让我陷入了迁移。我希望有人能指出我正确的方向。

将我的 vs 更新到 17.1.0 后,我遇到了完全相同的问题。我从 NuGet 安装了包Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

然后在您的 Program.cs 添加对 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 的引用和下面的代码。

builder.Services.AddMvc().AddRazorRuntimeCompilation();