9

我通常将一个编码的 json 对象附加到响应正文中,但是我现在有一种情况需要使用 ContextSwitch 操作助手。

我有一个 Zend_Form 需要三个不同的响应上下文:

  1. html - 将表单呈现为布局中的普通 html。
  2. html-partial - 仅将表单呈现为 html 的 ajax “获取”请求。
  3. json - 返回任何表单验证错误消息的 ajax“发布”请求。

对于每个上下文,我有 3 个视图脚本。虽然两个 html 上下文可以使用相同的视图脚本,但我还没有弄清楚这是否可能。

  • 表单.phtml
  • form.html.phtml
  • form.json.phtml

html 上下文视图工作正常,但 json 视图没有被拾取。覆盖默认 json 后回调行为或将自定义编码对象传递给响应正文的最佳方法是什么?

4

2 回答 2

6

就个人而言,我不使用“视图”来生成 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;
}

希望这有帮助。

于 2011-03-10T09:53:37.627 回答
0

这可能会有所帮助: $this->_helper->json->sendJson($data); 虽然,

$data=array('data1'=>'val1','data2'=>'val2');

于 2013-03-14T11:52:59.350 回答