It seems, most code for rendering view into string doesn\'t work in MVC 5.
I have latest MVC 5.1.2 templates and I am trying to render view into string.
To render PartialView to string use this code:
class FakeController: ControllerBase {
protected override void ExecuteCore() { }
public static string RenderViewToString(string controllerName, string viewName, object model) {
using(var writer = new StringWriter()) {
var routeData = new RouteData();
routeData.Values.Add("controller", controllerName);
var fakeControllerContext = new ControllerContext(new HttpContextWrapper(new HttpContext(new HttpRequest(null, "http://localhost", null), new HttpResponse(null))), routeData, new FakeController());
var razorViewEngine = new RazorViewEngine();
var razorViewResult = razorViewEngine.FindPartialView(fakeControllerContext, viewName, false);
var viewContext = new ViewContext(fakeControllerContext, razorViewResult.View, new ViewDataDictionary(model), new TempDataDictionary(), writer);
razorViewResult.View.Render(viewContext, writer);
return writer.ToString();
}
}
}