尽管@Html.RenderPartial
调用 write 并返回void
,它仍然是写入StringWriter
/ StringBuilder
。有没有办法直接渲染到ResponseStream
?
这可以通过实现像直接输出到的IViewEngine
渲染的自定义来完成吗?PdfView
ResponseStream
添加
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
不应用此包装的页面。