如何在 asp.net core 3.1 中显示嵌套文件夹中的页面

How to display pages from a nested folder in asp.net core 3.1

当我尝试 运行 应用程序时出现以下异常,我知道原因是找不到文件。但是有什么替代方法可以提供这个文件吗?

文件夹结构:

我尝试使用 "UseContentRoot" 但无法解决问题

   CreateHostBuilder(args).UseContentRoot(Directory.GetCurrentDirectory() + "\PersonalTab").Build().Run();

异常: InvalidOperationException: 未找到视图 'Index'。搜索了以下位置: /Views/Home/Index.cshtml /Views/Shared/Index.cshtml

当我尝试从 "PersonalTab" 文件夹外部查看时,效果很好,但根据我的要求,它需要在 "PersonalTab" 文件夹内吗?

注意:我正在使用 asp.net 核心 3.1

您可以将 RazorViewEngineOptions 配置为也在 PersonalTab 文件夹下查找。我尝试重新创建一个项目并将其添加到 Startup class ConfigureServices 方法中,它对我有用:

services.Configure<RazorViewEngineOptions>(o =>
        {
            o.ViewLocationFormats.Add("/PersonalTab/Views/{1}/{0}" + RazorViewEngine.ViewExtension);
            o.ViewLocationFormats.Add("/PersonalTab/Views/Shared/{0}" + RazorViewEngine.ViewExtension);
        });

参考:Change Default Location of Views and Razor Pages in ASP.NET Core