I have a background service running which sends out emails to users of my website. I would like to write the email templates as MVC views, to keep things consistent (so that the same model can be used to send out an email as to display a web page).
Unfortunately, when I try to do a LoadControl (which simply patches through to BuildManager.CreateInstanceFromVirtualPath), I get the following:
System.NullReferenceException at
System.Web.dll!System.Web.VirtualPath.GetCacheKey() + 0x26 bytes
System.Web.dll!System.Web.Compilation.BuildManager.GetCacheKeyFromVirtualPath + 0x2a bytes
System.Web.dll!System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal + 0x30 bytes
It seems that if I were to set MvcBuildViews to true, that there should be some easy way to use the compiled views to build an email template, but I can't figure out how.
I found the following blog from Rick Strahl, which may do the trick: http://www.west-wind.com/presentations/aspnetruntime/aspnetruntime.asp
However, it seems to start up a whole ASP.NET server to process requests.
Is there a simple way to load an MVC view & render it? Or is the only way to load up the ASP.NET runtime as suggested by Rick Strahl?