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

seb*_*ver 6 c# .net-6.0

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

正如您所看到的,所有地图和文件名都是一致的。

我已经按照微软的迁移指南一步一步进行操作,但没有成功。就我个人而言,我认为添加端点时出了问题,但我已经尝试了 .NET 6 为我提供的每一个可能的选项来添加默认控制器路由。

app.UseEndpoints(endpoints => {
    endpoints.MapDefaultControllerRoute();
    endpoints.MapRazorPages();
});
Run Code Online (Sandbox Code Playgroud)

或这个

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

当然还有这个

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

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

小智 4

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

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

builder.Services.AddMvc().AddRazorRuntimeCompilation();
Run Code Online (Sandbox Code Playgroud)