代码之家  ›  专栏  ›  技术社区  ›  Kiwi

未加载视图

  •  0
  • Kiwi  · 技术社区  · 5 年前

    我正在创建一个.net核心应用程序。 为了保持整洁,我试图将所有不同的“服务”分开

    在我的主人 startup.cs 我运行以下命令:

    public void ConfigureServices(IServiceCollection services)
    {
    
        services.AddAuthentication("Bearer")
            .AddJwtBearer("Bearer", options =>
        {
            
            options.Authority = "https://localhost:5001";
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateAudience = false
            };
        });
    
        ProjectA.Startup.ConfigureServices(services);
        ProjectB.Startup.ConfigureServices(services);
        ProjectC.Startup.ConfigureServices(services);
    }
    
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        ProjectA.Startup.Configure(app, env);
        ProjectB.Startup.Configure(app, env);
        ProjectC.Startup.Configure(app, env);
    }
    

    这似乎很有效,我所有的API端点都可用。

    现在我试图在ProjectC中添加一些剃刀页面,但在转到 /home 页面: Error problem

    这就是 startup.cs 关于该项目:

    public class Startup
    {
        public static void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
        }
    
        public static void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
    
            app.UseRouting();
            app.UseStaticFiles();
           
            app.UseAuthentication();
            app.UseAuthorization();
    
    
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapDefaultControllerRoute()
                .RequireAuthorization();
            });
    
        }
    }
    

    文件夹结构如下:

    .
    ├── src/
    │   ├── ProjectA/
    │   │   ├── Controllers/
    │   │   └── startup.cs
    │   ├── ProjectB/
    │   │   ├── Controllers/
    │   │   └── startup.cs
    │   ├── ProjectC/
    │   │   ├── Controllers/
    │   │   │   └── HomeController.cs
    │   │   ├── Views/
    │   │   │   ├── Home/
    │   │   │   │   └── index.cshtml
    │   │   │   ├── Shared/
    │   │   │   │   ├── _Layout.cshtml
    │   │   │   │   ├── _Nav.cshtml
    │   │   │   │   └── ...
    │   │   │   ├── _ViewImports.cshtml
    │   │   │   └── _ViewStart.cshtml
    │   │   └── startup.cs
    │   └── MainProject/
    │       └── startup.cs
    └── project.sln
    

    对如何使其工作有什么想法/建议吗?我尝试了一些静态文件配置,但没有一个给我任何结果

    0 回复  |  直到 5 年前
        1
  •  0
  •   Kiwi    5 年前

    我想通了。

    有两件事需要做:

    1. 添加a razor class library 不正常 class library
    2. 在csproj中添加以下内容;
    <ItemGroup>
      <Content Update="wwwroot\**\*" CopyToOutputDirectory="PreserveNewest" />
      <Content Update="Views\**\*" CopyToOutputDirectory="PreserveNewest" />
    </ItemGroup>