我通常会将一个编码的json对象附加到响应主体,但是我现在有一种情况需要使用ContextSwitch动作帮助器。
我有一个需要三种不同响应上下文的Zend_Form:
对于每个上下文,我有3个视图脚本。虽然这两个html上下文可以使用相同的视图脚本,但我还没弄清楚这是否可行。
html上下文视图可以正常工作,但json视图没有被选中。覆盖默认json post回调行为或将自定义编码对象传递给响应主体的最佳方法是什么?
答案 0 :(得分:6)
就个人而言,我不使用“View”来生成JSON内容。
在我的init()
中,我有类似的内容:
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->setAutoJsonSerialization(false)
->addActionContext('index', array('html', 'json'))
->initContext();
在我的indexAction()
:
if ( true === $this->isAjaxJson() ) {
$this->_helper->json(
array(
'response' => $myResponse,
'message' => $myMesage
)
);
return;
}
希望得到这个帮助。
答案 1 :(得分:0)
这可能会有所帮助:
$this->_helper->json->sendJson($data);
同时,
$data=array('data1'=>'val1','data2'=>'val2');