public async Task <string> RenderViewToString(string name, EmailViewModel model) { var actionContext = GetActionContext(); var viewEngineResult = this.RazorViewEngine.FindView(actionContext, name, false); if (viewEngineResult.Success == false) { throw new Exception("Not found!"); } var view = viewEngineResult.View; using (var output = new StringWriter()) { var viewContext = new ViewContext( actionContext, view, new ViewDataDictionary <EmailViewModel>( //metadataProvider: new EmptyModelMetadataProvider(), null, modelState: new ModelStateDictionary()) { Model = model }, new TempDataDictionary( actionContext.HttpContext, this.TempDataProvider), output, new HtmlHelperOptions()); await view.RenderAsync(viewContext); return(output.ToString()); } }