我正在使用 Cake 2.1,随之而来的是新的JsonView。我想做的是 POST 到我的控制器中的一个方法并呈现一个 html 片段,以便我可以将它作为 json 中的值返回。
以前我会做这样的事情:
public function ajaxSubmit() {
if (!$this->request->is('ajax')) {
$this->redirect('/');
} else {
$this->autoRender = $this->layout = false;
$message = 'Please enter a message';
$this->set('message');
$errorFragment = $this->render('/Elements/errors/flash_error');
$toReturn = array('errorFragment' => $errorFragment);
return json_encode($toReturn);
}
}
它只发回该特定flash_error
元素的 html 片段,这样我就不能key => values
在标准 json 对象中发回多个。我希望能够将 html 片段和纯文本作为 json 发送。
所以我的问题真的是,我怎样才能渲染一个 HTML 元素,并使用 Cake 2.1 提供的 JsonView 将它设置为从我的控制器作为 json 发送回的 (key=>value 对)?我已经在我的路由文件中进行了设置,Router::parseExtensions('json');
并且我将RequestHandler
组件包含在我的 AppController 中。