Yes, when you call render( ‘modelName/viewName’, array( ‘varA’=>$varA, ‘varB’=>varB, ) ) each of the key=>value pairs in the 2nd argument are usable in the view, named as the key. So if you passed in ‘blah’=>$varA in your controller, then in your view you would use $blah.
I agree. Putting html in your url is ugly and could cause weird behavior in the worst case. It’s cleaner to build your HTML string in the controller and pass it to the view in a variable. You can use renderPartial() to keep your controller code cleaner:
$sHTML = $this->renderPartial( 'modelA/viewX', NULL, true ); // renderPartial can return a string
$this->render( 'modelA/viewY', array( 'sInputHTML'=>$sHTML, ) );
This way you keep your format and logic separate, woo! And in ‘viewY’ in my example you would use the Yii::app()->format->html( $sInputHTML );