我通常将编码的 json 对象附加到响应正文,但是现在我遇到了需要使用 ContextSwitch 操作助手的情况。
我有一个 Zend_Form 需要三个不同的响应上下文:
-
html- 将表单渲染为普通 html
在布局内。
-
html 部分- 渲染的ajax“获取”请求
只是 html 形式。
-
json- 返回的 ajax“post”请求
任何表单验证错误消息。
对于每个上下文,我有 3 个视图脚本。虽然两个 html 上下文可以使用相同的视图脚本,但我还没有弄清楚这是否可能。
- 表单.phtml
- 表单.html.phtml
- 表单.json.phtml
html 上下文视图工作正常,但 json 视图没有被拾取。覆盖默认 json post 回调行为或将自定义编码对象传递到响应正文的最佳方法是什么?
就我个人而言,我不使用“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;
}
希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)