Problem: When rendering an action's view script from a different action, the view variables that normally would exist are never initialized.
For example, indexAction creates a form it's view script and at least one other variable for the view: public function indexAction() { $this->view->runs = array(); $contactForm = $this->_getContactForm(); $this->view->contactForm = $contactForm; $dbAdapter = $this->getInvokeArg('bootstrap')->getResource('db'); $runGateway = new Model_RunGateway(array('dbAdapter' => $dbAdapter)); $runs = array(); $runs = $runGateway->getRuns(); $this->view->runs = $runs; // Will be lost if another action calls $this->render('index') } The form's action is contactprocessAction() ('/index/contactprocess/'). The form is submitted and is not valid. I can assign the $form to a view variable and render the original 'index' view. public function contactprocessAction() { $this->view->valid = false; $request = $this->getRequest(); $form = $this->_getContactForm(); if (!$form->isValid($request->getPost())) { $this->view->contactForm = $form; // $this->contactForm is in the view, but no other vars are. return $this->render('index'); } } But, the other view variables that would normally be created when indexAction is called, do not get created. What do you think is the best way to deal with this?