如何在 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
当我尝试 运行 应用程序时出现以下异常,我知道原因是找不到文件。但是有什么替代方法可以提供这个文件吗?
文件夹结构:
我尝试使用 "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