ASP.NET Core Razor 组件类库ASP.NET Core Razor components class libraries

组件可在 中跨项目共享。“Razor 组件类库”可以包含在以下各项中 :

  • 解决方案中的另一个项目。
  • NuGet 程序包。
  • 引用的 .NET 库。

正如组件是常规的 .NET 类型一样,RCL 提供的组件也是普通的 .NET 程序集。

按照 ASP.NET Core Blazor 入门 文章中的指导,为 Blazor 配置环境。

  • 选择“Razor 类库” 。选择“下一步” 。
  • 在“创建新的 Razor 类库”对话框中,选择“创建” 。
  • 在“项目名称”字段提供项目名称,或接受默认项目名称 。本主题中的示例使用项目名称 。选择“创建” 。
  • 将 RCL 添加到一个解决方案:
    • 右键单击该解决方案。选择“添加” > “现有项目” 。
    • 导航到 RCL 的项目文件。
    • 选择 RCL 的项目文件 (.csproj) 。
  • 从应用中添加 RCL 的引用:
    • 右键单击该应用项目。选择“添加” > “引用” 。
    • 选择 RCL 项目。选择“确定” 。

备注

如果在从模板生成 RCL 时选中了“支持页和视图”复选框,还请通过以下内容,将“Imports.razor”文件添加到所生成项目的根目录中,以启用 Razor 组件创作 :

  • 在命令行界面中,将 Razor 类库模板 (razorclasslib) 与 命令一起使用 。下面的示例创建了名为 MyComponentLib1 的 RCL。执行命令时,自动创建包含 MyComponentLib1 的文件夹:

    备注

    如果在从模板生成 RCL 时使用 -s|—support-pages-and-views 开关,还请通过以下内容将“Imports.razor”文件添加到所生成项目的根目录中,以启用 Razor 组件创作 :

    手动将该文件添加到所生成项目的根目录中。

    • 若要将库添加到现有项目中,请在命令行界面中使用 dotnet add reference 命令。在下面的示例中,将 RCL 添加到应用中。使用指向库的路径从应用的项目文件夹执行以下命令:

    若要使用另一项目的库中定义的组件,请使用以下任一方法:

    • 使用命名空间的完整类型名称。
    • 使用 Razor 的 指令。单个组件可以按名称添加。

    在下面的示例中,MyComponentLib1 是一个包含 SalesReport 组件的组件库。

    如果将库纳入作用域内,该组件也可通过 @using 指令进行引用:

    1. @using MyComponentLib1
    2. <h1>Hello, world!</h1>
    3. Welcome to your new app.
    4. <SalesReport />

    在顶级 _Import.razor 文件中包含 指令,使库的组件可用于整个项目 。将指令添加到任何级别的 _Import.razor 文件,将命名空间应用于文件夹中的单个页面或一组页面 。

    由于组件库是标准的 .NET 库,因此将它们打包并传送到 NuGet 与将任何库打包并传送到 NuGet 没有什么区别。在命令行界面中使用 dotnet pack 命令,执行打包操作:

    在命令行界面中使用 命令,将包上传到 NuGet。

    RCL 可以包括静态资产。静态资产可用于任何使用该库的应用。有关详细信息,请参阅 ASP.NET Core 的类库中的可重用 Razor UI