【问题标题】:How to render a Blazor component into an HTML string如何将 Blazor 组件呈现为 HTML 字符串
【发布时间】:2020-06-11 17:09:07
【问题描述】:
我正在寻找一种将 Blazor 组件呈现为 HTML 字符串的方法,以便能够将其用作模板引擎,以在我的 Web 应用程序中创建和发送电子邮件。想法?
【问题讨论】:
标签:
blazor
blazor-server-side
blazor-client-side
asp.net-blazor
【解决方案1】:
是的,您可以使用 Steve Sanderson 提供的测试库并根据您的需要进行调整。
这篇文章解释了如何使用它:Introduction to Blazor Component Testing
.
该库可用于生成组件的 HTML。
示例:
var host = new TestHost();
var component = host.AddComponent<YourComponent>();
var html = component.GetMarkup();
而且你可以注入你需要的服务。
host.ConfigureServices(services =>
{
service.AddSingleton<MyService>();
});
【解决方案2】:
Agua 原来的答案还是不错的.. 然而
现在有一个新的解决方案可以解决这个问题:BlazorTemplater 是我写的一个库来解决这个功能(因为我的应用程序需要这个!)。
这个库将在电子邮件中为我们呈现任何.razor 组件到 HTML。支持嵌套组件、属性、依赖注入,可在 Razor 组件库中使用。