我没有找到如何在 extbase 控制器中使用流体部分以将其重用于 ajax 请求/响应的示例。
类似于 Tag f:render partial="" 但在控制器中以 json 响应返回 html。
我找到了一个解决方案:
$this->templateView = $this->objectManager->create('Tx_Fluid_View_TemplateView');
$res = t3lib_extMgm::extPath($this->controllerContext->getRequest()->getControllerExtensionKey()) . 'Resources/Private/';
$this->templateView->setLayoutRootPath($res);
$this->templateView->setPartialRootPath($res . 'Partials/');
$this->templateView->setRenderingContext($this->objectManager->create('Tx_Fluid_Core_Rendering_RenderingContext'));
$this->templateView->setControllerContext($this->controllerContext);
$partial = $this->templateView->renderPartial($partialName, Null, $data);
但唯一的问题是 setRenderingContext 方法没有正确设置默认的 RenderingContext,我必须修改该方法。