Может ли свойство MarkupString преобразовать строку пользовательского компонента в HTML элементов в DOM - PullRequest
0 голосов
/ 26 мая 2020

Я создал серверное приложение Blazor. А затем добавьте пользовательский компонент в MarkupString . MarkupString преобразует только объявленную строку как тег HTML. Но он не преобразует пользовательский компонент в элементы HTML. Поддерживается ли это в платформе Blazor.

Counter объявляет компонент счетчика (пользовательский компонент):

<div style="height:100%; width:100%;">
    @((MarkupString)@Markup)
</div>
@code {
   string Markup = "<Counter></Counter>";
}

Страница Counter.razor содержит следующий код.

<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>

<h3>Development Mode</h3>
<p>
    Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
    <strong>The Development environment shouldn't be enabled for deployed applications.</strong>
    It can result in displaying sensitive information from exceptions to end users.
    For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
    and restarting the app.
</p>

Ожидаемый результат:

Я ожидаю выполнить компонент счетчика и отобразить выходные элементы в DOM.

1 Ответ

2 голосов
/ 27 мая 2020

Может ли свойство MarkupString преобразовать строку пользовательского компонента в HTML элементы в DOM

Нет, не может.

MarkupString позволяет отображать необработанные HTML. Он анализирует содержимое MarkupString как HTML или SVG, а затем вставляет его в DOM. Однако он не будет отображать ваш компонент Counter. Вместо этого он преобразует тег в нижний регистр и рассматривает его как тег HTML. Это результат:

<div style="height:100%; width:100%;">
    <counter></counter>
</div>

Поддерживается ли это на платформе Blazor.

Как видите, это не так. Однако это может быть возможно в будущем, возможно, сообществом Blazor. Я не уверен насчет этого, но я думаю, что у Стива Сандерсона было что-то связанное с этим ...

Надеюсь, это поможет ...

...