В .NET 6 был компонент environment
для проверки текущей среды. Следующий пример кода взят из проекта Vanilla Blazor Server с использованием .NET 6.
<environment include = "Staging,Production">
An error has occurred. This application may no longer respond until reloaded.
</environment>
<environment include = "Development">
An unhandled exception has occurred. See browser dev tools for details.
</environment>
Этот собственный компонент будет условно отображать дочерние элементы в зависимости от того, соответствует ли текущее имя среды тому, что указано в параметре include
.
Похоже, что Blazor с .NET 8 не имеет этого компонента. Есть ли новый или мне просто стоит пойти дальше и сделать свой? Я могу легко создать свой собственный, но если существует новый, который делает это, у меня нет причин создавать еще один.
Похоже, что Blazor с .NET 8 не имеет этого компонента. Есть новый или мне просто пойти дальше и сделать свой? я легко могу сделать мой собственный, но если существует новый, который делает это, нет причин для мне сделать еще один.
Сокращенный ответ: вам нужен собственный компонент для удовлетворения ваших требований.
Вы можете просмотреть файлы в Blazor с помощью .NET 8, все они являются компонентами бритвы. Затем вы можете проверить, что environment
является помощником тега. Помощники тегов не поддерживаются в компонентах. Чтобы обеспечить в Blazor функциональность, подобную Tag Helper, создайте компонент с теми же функциями, что и Tag Helper, и используйте вместо него этот компонент.
Ссылка: Помощники тегов не поддерживаются в компонентах
По вашему требованию вы также можете просто внедрить сервис IWebHostEnvironment
в свои компоненты Razor, где вам нужно условно отображать контент на основе среды.
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment WebHostEnvironment
<h1>Welcome to My Blazor App</h1>
@if (WebHostEnvironment.IsEnvironment("Staging") || WebHostEnvironment.IsEnvironment("Production"))
{
<p>An error has occurred. This application may no longer respond until reloaded.</p>
}
else if (WebHostEnvironment.IsEnvironment("Development"))
{
<p>An unhandled exception has occurred. See browser dev tools for details.</p>
}
else
{
<p>No environment-specific message.</p>
}
Это способ.