如何将Blazor组件渲染为HTML字符串

20

我正在寻找一种将 Blazor 组件渲染成 HTML 字符串的方法,这样我就可以将其用作模板引擎,在我的 Web 应用程序中创建和发送电子邮件。有什么想法吗?


现在,随着.NET 6的推出,官方解决方案已经到来:https://dev59.com/YsHqa4cB1Zd3GeqP8ttU - noseratio - open to work
@noseratio的链接现在已经失效了。 - Bennyboy1973
1
@Bennyboy1973,链接对我仍然有效,但这是完整的链接:https://dev59.com/YsHqa4cB1Zd3GeqP8ttU - noseratio - open to work
现在对我也有效了。嗯。 - Bennyboy1973
2个回答

14

Agua的原始回答依然不错,但是

现在有一种新的解决方案可用于此问题:BlazorTemplater 是我编写的一个库,旨在解决这个问题(因为我需要在我的应用程序中使用它!)。

该库将任何.razor 组件呈现为HTML以供在电子邮件中使用。支持嵌套组件、属性、依赖注入,并且可以在Razor Component库中使用。


3
很好的解决方案,谢谢。 - Nb777
官方文档链接:https://learn.microsoft.com/en-gb/aspnet/core/blazor/components/?view=aspnetcore-7.0#blazor-custom-elements - user160357

12
是的,您可以使用Steve Sanderson提供的测试库,并根据自己的需要进行调整。本文介绍了如何使用它:《Blazor组件测试入门》。该库可用于生成组件的HTML。
例如:
var host = new TestHost();
var component = host.AddComponent<YourComponent>();
var html = component.GetMarkup();

你可以注入你需要的服务。

host.ConfigureServices(services => 
{
   service.AddSingleton<MyService>();  
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接