Search code examples
blazorblazor-server-sideblazor-client-sideasp.net-blazor

How to render a Blazor component into an HTML string


I'm looking for a way to render a Blazor component into an HTML string, so that I'll be able to use it as a templating engine to create and send emails in my web application. Ideas?


Solution

  • Yes, you can use the test library provided by Steve Sanderson and adapt it to your needs.
    This article explains how to use it : Introduction to Blazor Component Testing .
    The library can be use to generate the HTML of a component.

    exemple :

    var host = new TestHost();
    var component = host.AddComponent<YourComponent>();
    var html = component.GetMarkup();
    

    And you can inject services you need.

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