我们正在将 MVC/Angular 网站从 ASPNET Core 2.2 转换为 ASPNET Core 3.1。我让构建运行时没有错误或警告,但是当它启动时(在 Visual Studio 2019 中),它会查找 Home/Index,发现 Controller 正常,并查找 Home/Index View,但它失败了找到它,即使它在那里(在 Views/Home/Index.cshtml 中),就在它应该在的地方(而且在我们开发这个网站的几个月里它一直在的地方。我现在把它简化为一个测试如果我可以将 Web 项目文件设置为 netcoreapp2.2 并且站点运行正常,然后停止它并将其更改为 netcoreapp3.1,没有其他更改,它会失败。错误正是您所期望的文件失踪了:
System.InvalidOperationException: The view 'Index' was not found. The following locations were searched:
/Views/Home/Index.cshtml
/Views/Shared/Index.cshtml
/Pages/Shared/Index.cshtml
但是文件在那里!我完全感到困惑。
谁能给我一个提示,告诉我发生了什么事?
谢谢。
最佳答案
我们刚刚遇到了类似的局部 View 问题:将 Web 应用程序从核心 2.2 升级到 3.1 后,找不到局部 View 。我们的解决方案是替换这个...
services.AddMvc();
...与...
services.AddControllersWithViews();
services.AddRazorPages().AddRazorRuntimeCompilation();
虽然我相信 .AddMvc() 等同于 .AddControllersWithViews() 加上 .AddRazorPages,但它不包括开箱即用的运行时编译部分。
关于c# - 转换为 ASPNET Core 3.1 后 MVC 找不到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59761084/