Index: library/Zend/View/Helper/Action.php =================================================================== --- library/Zend/View/Helper/Action.php (revision 10181) +++ library/Zend/View/Helper/Action.php (working copy) @@ -117,6 +117,16 @@ */ public function action($action, $controller, $module = null, array $params = array()) { +$front = Zend_Controller_Front::getInstance(); +$request = clone $front->getRequest(); +$response = clone $front->getResponse(); +$params_ = $request->getUserParams(); +foreach (array_keys($params_) as $key) { + $request->setParam($key, null); +} +$response->clearBody(); +$response->clearHeaders()->clearRawHeaders(); + $this->resetObjects(); if (null === $module) { $module = $this->defaultModule; @@ -126,26 +136,26 @@ $viewRendererObj = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); Zend_Controller_Action_HelperBroker::addHelper(clone $viewRendererObj); - $this->request->setParams($params) + $request->setParams($params) ->setModuleName($module) ->setControllerName($controller) ->setActionName($action) ->setDispatched(true); - $this->dispatcher->dispatch($this->request, $this->response); + $this->dispatcher->dispatch($request, $response); // reset the viewRenderer object to it's original state Zend_Controller_Action_HelperBroker::addHelper($viewRendererObj); - if (!$this->request->isDispatched() - || $this->response->isRedirect()) + if (!$request->isDispatched() + || $response->isRedirect()) { // forwards and redirects render nothing return ''; } - $return = $this->response->getBody(); + $return = $response->getBody(); return $return; }