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

如何将razor视图分发到.NET Core中的另一个应用程序

  •  3
  • Jenan  · 技术社区  · 7 年前

    Asp.Net MVC .NET Core .

    此应用程序包含一些 Razor Views

    下面是关于分布示例的一些信息 Controllers 但是周围 Views https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/app-parts

    我尝试过这样添加控制器:

    var assembly = typeof(Project.HomeController).GetTypeInfo().Assembly;
    
    services.AddMvc()
            .AddApplicationPart(assembly);
    

    这很好,但我不知道如何添加视图。

    我如何分发 到另一个应用程序?它是否像中间件一样将它们导入到 MVC middleware

    1 回复  |  直到 6 年前
        1
  •  6
  •   Jack    7 年前

    您可以创建一个普通的netstandard1.6库,即控制器所在的位置,并使用以下方法将视图资源嵌入到csproj中的dll中:

      <ItemGroup>
        <EmbeddedResource Include="Views\**\*.cshtml" />
      </ItemGroup>
    

    之后,您可以使用RazorViewEngineOptions注册这些选项:

    // Add views provided in this assembly.     
    services.Configure<RazorViewEngineOptions>(options =>
    {
        options.FileProviders.Add(
            new EmbeddedFileProvider(typeof(ClassInLibrary).GetTypeInfo().Assembly));
    });