【发布时间】:2020-04-17 14:45:06
【问题描述】:
背景:我们为客户运营着数十个网站;都使用相同的代码库(ASP.NET WebForms),但设计完全不同。页面结构是从 SQL Server 元数据以编程方式生成的,使用诸如 Panel 之类的控件,这些控件被添加到 ASP.NET 页面的 Controls 集合中,并在呈现的 HTML 中变为 DIVs。
目标:我们希望最终迁移到 ASP.NET CORE。但是,似乎没有等效于页面的控件集合。我能找到的最接近的东西是用于添加 Blazor 组件的 RenderTreeBuilder。
问题:是否可以使用BuildRenderTree 添加一个包含我们自制HTML 的组件(例如,包含<body> 和</body> 之间的所有内容?
我读过以下文章:
https://chrissainty.com/building-components-via-rendertreebuilder/
... 并尝试添加 HTML 元素,但它非常麻烦,我想以编程方式为几乎整个页面生成 HTML,并将其添加为一个 RenderFragment(这是正确的术语吗? )。
这可能吗?有其他选择吗?
编辑:
@Henk 的答案使用 MarkupString 结构,而我的使用 RenderTreeBuilder.AddMarkupContent 在工作量和所需管道方面似乎相似。
我应该考虑这两种方法的优缺点吗?
【问题讨论】:
标签: asp.net asp.net-core blazor-server-side dynamic-html