Компонент среды Blazor в .NET 8 и .NET 6

В .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 не имеет этого компонента. Есть ли новый или мне просто стоит пойти дальше и сделать свой? Я могу легко создать свой собственный, но если существует новый, который делает это, у меня нет причин создавать еще один.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, что 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>
}

Это способ.

Jason Ayer 09.07.2024 16:25

Другие вопросы по теме