虽然@Html.RenderPartial
调用write和return void
,但它仍然写入StringWriter
/ StringBuilder
.有没有办法直接渲染到ResponseStream
?
这可以通过IViewEngine
实现渲染的自定义来完成,PdfView
直接输出到ResponseStream
?
加成
ViewResultBase.ExecuteResult
显示ViewContext
正在构建Response.Output
,但调试器显示ViewContext.Writer
为StringWriter
这两种方法都会导致a StringWriter
return PartialView("view", Model) // or PartialView("view", Model).ExecuteResult(ControllerContext)
编辑
它似乎System.Web.WebPages.WebPageBase
ExecutePageHeirarchy
将temp压StringWriter
入上下文堆栈,所以我不确定是否可以绕过它
综上所述
RenderPartial,RenderAction不直接输出到Response.Stream,Razor Views都不会
解
这是一个新的WebPages/Razor渲染引擎,用a StringWriter
到a 包装所有东西StringBuilder
.解决方案是更改我的页面以使用 WebFormViewEngine
不应用此包装的页面.