Beispiel #1
0
        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());
            }
        }