Справочная информация: мы управляем десятками сайтов для клиентов; все используют идентичную базу кода (ASP.NET WebForms), но совершенно разные конструкции. Структура страницы генерируется программно из метаданных SQL Server с использованием таких элементов управления, как Panel
, которые добавляются в коллекцию Controls
страницы ASP.NET и становятся DIVs
в обработанном HTML.
Цель: мы хотим в конечном итоге перейти на ASP.NET CORE. Однако, похоже, нет эквивалента коллекции элементов управления страницы. Ближайшее, что я могу найти, - это RenderTreeBuilder для добавления компонента Blazor.
Вопрос: Можно ли использовать BuildRenderTree
для добавления компонента, содержащего наш домашний HTML (например, чтобы содержать все, что находится между <body>
и </body>
?
Я читал такие статьи, как:
https://chrissainty.com/building-components-via-rendertreebuilder/
... и экспериментировал с добавлением элементов HTML, но это чрезвычайно громоздко, и я хотел бы программно сгенерировать HTML практически для всей страницы и добавить его как один RenderFragment
(это правильный термин?).
Это возможно? Есть ли альтернатива?
Изменить:
Ответ @Henk, использующий структуру MarkupString
, и мой, использующий RenderTreeBuilder.AddMarkupContent
, кажутся похожими с точки зрения требуемых усилий и сантехники.
Есть ли плюсы и минусы двух подходов, которые мне следует рассмотреть?