当我在“调试”模式下构建ASP.NETCore应用程序时,它工作得很好。但是当我选择“释放”模式时,我得到一个错误:"找不到视图'Index'。检索了以下位置:/Views/首页/index. release. cshtml "在文件夹“/Views/Home”中,我只有一个文件“Index.cshtml”。并且没有文件“Index.release.cshtml”。我检查了所有的配置,但找不到任何东西。有人有什么想法吗?
im9ewurl1#
您遇到的错误可能与ASP.NET Core中的视图解析过程有关。默认情况下,ASP.NETCore基于选定模式(调试或发布)以特定顺序查找视图。在调试模式下,它搜索扩展名为“.cshtml”的视图,而在发布模式下,它将模式名称(例如,“.release.cshtml”)附加到视图名称。要解决此问题,您有几个选项:确保构建配置:请仔细检查您是否在正确的构建配置中构建和运行应用程序。请确保您在构建设置中选择了“发布”模式,并且没有错误地在调试模式下构建。清洁和重建:有时,构建过程可能会留下工件或旧文件。请尝试通过清理解决方案然后重新生成来执行干净生成。这将确保删除所有过时的文件,并且生成过程正确生成必要的文件。检查视图位置:验证视图文件“Index.cshtml”是否位于/Views/Home下的正确文件夹结构中。它应该直接位于Home文件夹下,而不是嵌套在另一个子文件夹中。检查项目文件和属性:验证视图文件是否包含在项目文件(.csproj)中,并设置为复制到输出目录。右键单击Visual Studio中的视图文件,转到“属性”,并确保“复制到输出目录”设置为“始终复制”或“如果更新则复制”。检查路由和控制器:确保路由配置和控制器代码正确。确保您有一个返回“Index”视图的控制器,并且路由设置正确以Map到该控制器和操作。显式指定视图名称:如果上述步骤不能解决问题,您可以在控制器操作中显式指定视图名称。不依赖默认视图分辨率,可以使用View()方法重载,接受视图名作为参数,如下所示:return View(“);.
1条答案
按热度按时间im9ewurl1#
您遇到的错误可能与ASP.NET Core中的视图解析过程有关。默认情况下,ASP.NETCore基于选定模式(调试或发布)以特定顺序查找视图。在调试模式下,它搜索扩展名为“.cshtml”的视图,而在发布模式下,它将模式名称(例如,“.release.cshtml”)附加到视图名称。
要解决此问题,您有几个选项:
确保构建配置:请仔细检查您是否在正确的构建配置中构建和运行应用程序。请确保您在构建设置中选择了“发布”模式,并且没有错误地在调试模式下构建。
清洁和重建:有时,构建过程可能会留下工件或旧文件。请尝试通过清理解决方案然后重新生成来执行干净生成。这将确保删除所有过时的文件,并且生成过程正确生成必要的文件。
检查视图位置:验证视图文件“Index.cshtml”是否位于/Views/Home下的正确文件夹结构中。它应该直接位于Home文件夹下,而不是嵌套在另一个子文件夹中。
检查项目文件和属性:验证视图文件是否包含在项目文件(.csproj)中,并设置为复制到输出目录。右键单击Visual Studio中的视图文件,转到“属性”,并确保“复制到输出目录”设置为“始终复制”或“如果更新则复制”。
检查路由和控制器:确保路由配置和控制器代码正确。确保您有一个返回“Index”视图的控制器,并且路由设置正确以Map到该控制器和操作。
显式指定视图名称:如果上述步骤不能解决问题,您可以在控制器操作中显式指定视图名称。不依赖默认视图分辨率,可以使用View()方法重载,接受视图名作为参数,如下所示:return View(“);.