尽管@Html.RenderPartial调用 write 并返回void,它仍然是写入StringWriter/ StringBuilder。有没有办法直接渲染到ResponseStream?
这可以通过实现像直接输出到的IViewEngine渲染的自定义来完成吗?PdfViewResponseStream
添加
ViewResultBase.ExecuteResult显示ViewContext正在构建Response.Output,但调试器显示ViewContext.Writer为StringWriter
这两种方法都会导致StringWriter
return PartialView("view", Model)
// or
PartialView("view", Model).ExecuteResult(ControllerContext)
编辑
似乎System.Web.WebPages.WebPageBase ExecutePageHeirarchy将临时推StringWriter送到上下文堆栈中,所以我不确定是否可以绕过
总之
RenderPartial、RenderAction 不直接输出到 Response.Stream,Razor Views 都不会
解决方案
它是新的 WebPages/Razor 渲染引擎,它用 aStringWriter到 a包装了所有内容StringBuilder。解决方案是更改我的页面以使用 WebFormViewEngine不应用此包装的页面。