在ASP.NET Core 3.1 Razor Pages中使用虚拟目录的解决方法如下所示:
打开Startup.cs文件。
在ConfigureServices方法中添加以下代码,将虚拟目录路径添加到应用程序的ContentRoot中:
services.Configure(options =>
{
    options.FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "虚拟目录路径"));
});
 请将“虚拟目录路径”替换为实际的虚拟目录路径。
Configure方法中添加以下代码,将虚拟目录映射到/虚拟目录路径:app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "虚拟目录路径")),
    RequestPath = "/虚拟目录路径"
});
同样,请将“虚拟目录路径”替换为实际的虚拟目录路径。
完整的Startup.cs文件示例代码如下:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.FileProviders;
using System.IO;
namespace YourNamespace
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
        public IConfiguration Configuration { get; }
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure(options =>
            {
                options.FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "虚拟目录路径"));
            });
            services.AddRazorPages();
        }
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "虚拟目录路径")),
                RequestPath = "/虚拟目录路径"
            });
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
            });
        }
    }
}
 请确保将YourNamespace替换为您的命名空间。
这样,您就可以在ASP.NET Core 3.1 Razor Pages中使用虚拟目录了。