Компоненты Razor некорректно компилируются в стандартной библиотеке .NET

#blazor #razor-component-library

#blazor #razor-component-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>
  

Однако при редактировании компонентов я обнаружил, что процесс компиляции завершается сбоем. Например, не удается правильно сопоставить @bind=.. атрибут в теге HTML, и компоненты Razor, похоже, не компилируются правильно.

Ответ №1:

Это вызвано отсутствием _Imports.razor файла, который обычно создается, если вы создаете библиотеку компонентов Razor напрямую. Это приводит к тому, что правильная библиотека компонентов попадает в область действия для компиляции Razor. Создайте это в корне библиотеки.

Содержимое должно содержать хотя бы эту строку:

 @using Microsoft.AspNetCore.Components.Web
  

При желании вы можете включить в область видимости и другие пространства имен.