如何将完整的RazorPage渲染为字符串? [英] How to render full RazorPage to string?
本文介绍了如何将完整的RazorPage渲染为字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试使用https://stackoverflow.com/a/54043063/234954中的解决方案将页面呈现为字符串(以便我可以将其转换为PDF),但这只能获得主视图,它没有获得与页面相关联的布局(因此它缺少样式表和一些页眉/页脚)。
如何将整个页面呈现为字符串,而不仅仅是部分视图?
推荐答案
我发现我可以通过对我正在查看的答案进行两次更改来获得我想要的(整个页面):
var view = new RazorView(_razorViewEngine,
_activator,
new List<IRazorPage>(),
page,
HtmlEncoder.Default,
new DiagnosticListener("ViewRenderService"));
更改为:
var view = new RazorView(_razorViewEngine,
_activator,
pageModel.PageContext.ViewStartFactories.Select(v => v()).ToList(),
page,
HtmlEncoder.Default,
new DiagnosticListener("ViewRenderService"));
和
await page.ExecuteAsync();
至
await view.RenderAsync(viewContext);
请注意,如果视图中不包括视图起始页,则呈现该视图将产生与执行该页相同的结果。
这篇关于如何将完整的RazorPage渲染为字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文