Как визуализировать компонент Blazor с помощью параметра RenderFragment со страницы Razor ⇐ C#
Как визуализировать компонент Blazor с помощью параметра RenderFragment со страницы Razor
У меня есть следующий компонент Blazor:
# Button.razor @ChildContent @код { [Параметр] общественный RenderFragment ChildContent {get; набор; } } Я хочу использовать его на странице Razor. Я знаю, что могу использовать: @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) для этого. Но как передать этому компоненту параметр RenderFragment? RenderComponentAsunc имеет второй аргумент, через который я могу передать параметры для компонента, поэтому я думаю что-то вроде этого должно быть возможно:
# Page.cshtml @(ожидайте Html.RenderComponentAsync(RenderMode.ServerPrerendered, новый { ChildContent = "Текст кнопки" })) Однако это заканчивается ошибкой:
InvalidCastException: невозможно привести объект типа «System.String» к типу «Microsoft.AspNetCore.Components.RenderFragment». Поэтому я попытался передать RenderFragment напрямую. Я создал метод расширения, который создает RenderFragment из строки:
публичный статический класс StringExtensions { общедоступный статический RenderFragment ToRenderFragment (эта строка s) => b => b.AddContent(0, s); } А затем визуализируйте это следующим образом:
@(await Html.RenderComponentAsync(RenderMode.ServerPrerendered, new { ChildContent = "Текст кнопки".ToRenderFragment() })) Мне этот подход тоже не удался.
NotSupportedException: сериализация и десериализация экземпляров Microsoft.AspNetCore.Components.RenderFragment не поддерживаются.NotSupportedException: сериализация и десериализация экземпляров Microsoft.AspNetCore.Components.RenderFragment не поддерживаются.NotSupportedException: сериализация и десериализация экземпляров Microsoft.AspNetCore.Components.RenderFragment не поддерживается. Компонент также можно отобразить с помощью тега . Итак, я попробовал.
Текст кнопки Но это отображает html неправильно
Текст кнопки И я хочу
Текст кнопки Как это сделать? Здесь я использую кнопку в качестве упрощенного примера, поэтому прямое использование разметки в файле .cshtml будет неудобным дублированием кода.
У меня есть следующий компонент Blazor:
# Button.razor @ChildContent @код { [Параметр] общественный RenderFragment ChildContent {get; набор; } } Я хочу использовать его на странице Razor. Я знаю, что могу использовать: @(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) для этого. Но как передать этому компоненту параметр RenderFragment? RenderComponentAsunc имеет второй аргумент, через который я могу передать параметры для компонента, поэтому я думаю что-то вроде этого должно быть возможно:
# Page.cshtml @(ожидайте Html.RenderComponentAsync(RenderMode.ServerPrerendered, новый { ChildContent = "Текст кнопки" })) Однако это заканчивается ошибкой:
InvalidCastException: невозможно привести объект типа «System.String» к типу «Microsoft.AspNetCore.Components.RenderFragment». Поэтому я попытался передать RenderFragment напрямую. Я создал метод расширения, который создает RenderFragment из строки:
публичный статический класс StringExtensions { общедоступный статический RenderFragment ToRenderFragment (эта строка s) => b => b.AddContent(0, s); } А затем визуализируйте это следующим образом:
@(await Html.RenderComponentAsync(RenderMode.ServerPrerendered, new { ChildContent = "Текст кнопки".ToRenderFragment() })) Мне этот подход тоже не удался.
NotSupportedException: сериализация и десериализация экземпляров Microsoft.AspNetCore.Components.RenderFragment не поддерживаются.NotSupportedException: сериализация и десериализация экземпляров Microsoft.AspNetCore.Components.RenderFragment не поддерживаются.NotSupportedException: сериализация и десериализация экземпляров Microsoft.AspNetCore.Components.RenderFragment не поддерживается. Компонент также можно отобразить с помощью тега . Итак, я попробовал.
Текст кнопки Но это отображает html неправильно
Текст кнопки И я хочу
Текст кнопки Как это сделать? Здесь я использую кнопку в качестве упрощенного примера, поэтому прямое использование разметки в файле .cshtml будет неудобным дублированием кода.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как передать компоненту два разных RenderFragment и визуализировать их в разных местах?
Anonymous » » в форуме C# - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как передать компоненту два разных RenderFragment и визуализировать их в разных местах?
Anonymous » » в форуме C# - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-