Хотя @Html.RenderPartial
звонки записывают и возвращают void
, он все еще записывает StringWriter
/StringBuilder
. Есть ли способ сделать прямо на ResponseStream
?Mvc Render Action/Partial to Response Output
Это можно сделать с помощью пользовательского IViewEngine
, который реализует рендер как PdfView
для прямого вывода на ResponseStream
?
Сложение
ViewResultBase.ExecuteResult
показывает ViewContext
строится с Response.Output
, но отладчик показывает ViewContext.Writer
как StringWriter
Оба этих подхода результаты в StringWriter
return PartialView("view", Model)
// or
PartialView("view", Model).ExecuteResult(ControllerContext)
EDIT
Оказывается, что System.Web.WebPages.WebPageBase
ExecutePageHeirarchy
толкает темп StringWriter
в стек контекста, так что я не уверен, если это можно обойти
В РЕЗЮМЕ
RenderPartial, RenderAction не напрямую выводить на Response.Stream, ни один из бритвенных Просмотры будет
РЕШЕНИЕ
Это новый движок рендеринга WebPages/Razor, который обертывает все с StringWriter
на StringBuilder
. Решение состояло в том, чтобы изменить мою страницу, чтобы использовать WebFormViewEngine
, который не применяет эту упаковку.
Вместо обновления ответа с решением, было бы более удобным для пользователей, которые ищут подобную проблему, если вы добавите решения в качестве ответа. – vendettamit