Razor 组件未在 .NET Standard 库中正确编译

Razor components not compiling correctly in a .NET Standard library

我已将库转换为 .NET Standard 2.0 以成为 Razor 组件库:

我将 SDK 类型更改为 Razor:

<Project Sdk="Microsoft.NET.Sdk.Razor">

并添加了对 Razor 组件库的引用

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components" Version="3.1.8" />
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.8" />
  </ItemGroup>

但是在编辑组件时我发现编译过程失败了。例如,它无法在 HTML 标记中正确映射 @bind=.. 属性,并且 Razor 组件似乎无法正确编译。

这是由于缺少 _Imports.razor 文件造成的,如果您直接创建 Razor 组件库,通常会创建该文件。这会将正确的组件库带入 Razor 编译的范围。在库的根目录中创建它。

内容至少应包含这一行:

@using Microsoft.AspNetCore.Components.Web

如果需要,您也可以将其他名称空间纳入范围。