soundaranbu / Razor.Templating.Core

Razor Templating Engine to render Razor Views(.cshtml files) to String in Console, Web, Service, Desktop workloads in .NET Core 3+
https://soundaranbu.medium.com/render-razor-view-cshtml-to-string-in-net-core-7d125f32c79
MIT License
339 stars 49 forks source link

Add support for Embedded Resources #76

Open cezeta-hub opened 3 weeks ago

cezeta-hub commented 3 weeks ago

The project I'm currently working on has the .cshtml templates as embedded resources, so I'm trying to use them from the assembly.

My approach is to configure the MvcRazorRuntimeCompilationOptions as stated on the documentation, but using an EmbeddedFileProvider instead of a PhysicalFileProvider.

The template in this example exists in the assembly at xxxx.EmailSender.Templates.en-Default.cshtml

Services setup:

image

When trying to find and render the template:

image

image

I tried with different route configurations, but none of them worked. Seems like the viewEngine appends a '/' automatically, assuming it's a physical path. I'm not that knowledgeable regarding Razor Templating, is this something approachable or is it just a limitation of the viewEngine that is tied to the expected MVC-style routing?

Thank you for your help!

soundaranbu commented 3 weeks ago

Hey @cezeta-hub, thanks for reporting the issue. I'll have a look at this and let you know. If possible I'll add a working sample to the repo.

cezeta-hub commented 3 weeks ago

Great! For the time being I'm using a workaround, including the files both as physical and embedded in the .csproj. Which is not really ideal but works for now.