首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在AjaxContext中使用_forward

在AjaxContext中使用_forward
EN

Stack Overflow用户
提问于 2009-08-10 21:43:10
回答 2查看 1.1K关注 0票数 2

我有一个控制器设置,它使用了一大堆不同的AjaxContent助手。控制器的init()如下所示:

代码语言:javascript
运行
复制
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('index', 'html')
        ->addActionContext('compose', 'html')
        ->addActionContext('sent', 'html')
        ->addActionContext('recipients','html')
        ->addActionContext('inbox', 'html')
        ->addActionContext('sendsuccess','html')
        ->initContext();

在composeAction()的末尾,如果满足了某个条件,AJAX请求应该转发给sendsuccessAction()。

使用标准的_forward()方法执行此操作似乎不会将其作为AjaxContent请求转发-页面希望使用标准视图模板进行呈现。

关于如何使用_forward或其他重定向方法,同时将请求保留为AJAX请求,以便触发正确的操作上下文,您有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-10 22:02:10

基本上发生的情况是,initContext()方法(为ajax响应设置环境)只在您的第一个分派的操作中被调用,而不是第二个。

有很多不同的方法来解决这个问题。

首先,要验证这就是问题所在,请尝试调用

代码语言:javascript
运行
复制
$this->_helper->ajaxContext->initContext();

从你的sendsuccessAction。这将强制AjaxContext操作帮助器再次正确设置viewRenderer。

或者,您可以将对$ajaxContext->initContext()的调用从init()方法移动到控制器的preDispatch()方法。这将导致它在调度每个操作之前运行。

票数 2
EN

Stack Overflow用户

发布于 2009-08-10 21:49:00

使用:

代码语言:javascript
运行
复制
$this->_forward("action","controller","module",array('format'=>'html')); # or ajax or json or whatever
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1257377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档