c# - 转换为 ASPNET Core 3.1 后 MVC 找不到 View

标签 c# asp.net-core asp.net-core-mvc

我们正在将 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/

相关文章:

c# - 使用正则表达式捕获分隔符内的子字符串并排除字符

c# - 在单独线程中加载屏幕的问题

c# - Selenium Webdriver 返回具有奇怪 alpha 值的背景色

c# - 在 _Layout 中注入(inject) IOptions<T> 的最佳方法是什么

javascript - 将 CDNJS 与 LibMan 一起用于 Moment.JS

testing - 在 ASP.NET 5/MVC 6 上的 AspNet.TestHost.TestServer 上下文中访问单元测试内的 Cookie

c# - 创建具有多个属性的对象集

c# - DNX SDK版本 'dnx-clr-win-x86.1.0.0-beta8-15530'安装失败

c# - 在代码后面执行授权检查

asp.net-core-mvc - 将 jquery-globalize 集成到 ASP.NET Core MVC 应用程序中