UPDATE July, 2016
Working fine on the following versions 1.0.0
, RC2
Who’s targeting aspnetcore RC2, this snippet might help you:
- Create a separate Service, so you can use it either if you are not in a controller context, e.g. from a command line or on a queue runner, etc …
- Register this service in your IoC container in the
Startup
class
https://gist.github.com/ahmad-moussawi/1643d703c11699a6a4046e57247b4d09
Usage
// using a Model
string html = view.Render("Emails/Test", new Product("Apple"));
// using a Dictionary<string, object>
var viewData = new Dictionary<string, object>();
viewData["Name"] = "123456";
string html = view.Render("Emails/Test", viewData);
Notes
Links in Razor are rendered as relative URL, so this will not work on external views (like emails, etc …).
As for now am generating the link on the controller and pass it to the view through the ViewModel.
Credit
The source is extracted from (Thanks To @pholly): https://github.com/aspnet/Entropy/blob/dev/samples/Mvc.RenderViewToString/RazorViewToStringRenderer.cs)