0

是的,我似乎做对了,它是如此简单,确实不应该缺少任何东西,但对于我的生活,我看不出它为什么不起作用,我的列表视图上有一个远程链接,如下所示:-

<g:remoteLink action="makeReady" id="${testExecQueueInstance.id}">X</g:remoteLink>

makeReady 在这一点上是空的,除了我希望它显示选定的行,所以控制器只有这个: -

def makeReady(Long myid){
    redirect(action:"show", id:myid)
}

表演动作是 grails 创建的沼泽标准表演,只需传入一个伦敦......

为什么这不起作用?我错过了什么愚蠢的显而易见的事情,我会在接下来的几天里把自己踢倒?

4

1 回答 1

0

<g:remoteLink发出ajax请求,并且您的页面已经呈现,服务器无法从中进行重定向,它已经显示。

有两种方法可以使它工作:

  • 使用标准链接
  • 以 JSON/Javascript 响应,并在客户端进行重定向。

对于第二个选项,它将类似于:

<div id="success"></div>
<g:remoteLink action="makeReady" id="${testExecQueueInstance.id}" update="success">X</g:remoteLink>

def makeReady(Long myid){
  String url = createLink(action:"show", id:myid)
  render(text: "window.location.href='${url.encodeAsURL()}'", contentType: "application/javascript")
}
于 2013-03-22T17:14:54.680 回答