0

そうです、私はこれを正しく行っているようで、とてもシンプルなので、欠けているものは何もないはずですが、私の人生では、なぜ機能しないのかわかりません。次のようにリストビューにリモートリンクがあります:-

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

makeReady は、選択した行を表示することを除けば、この時点では空であるため、コントローラーにはこれしか含まれていません。

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

そして、show アクションは、渡された Lond だけで grails が作成する沼地の標準的な show です...

なぜこれが機能しないのですか?今後数日間自分を蹴散らすことになる、私が見逃したばかげた明白なことは何ですか?

4

1 に答える 1

0

<g:remoteLinkajax リクエストを行い、ページは既にレンダリングされています。サーバーはそこからリダイレクトできず、既に表示されています。

動作させるには 2 つの方法があります。

  • 標準リンクを使用
  • JSON/Javascript で応答し、クライアント側でリダイレクトします。

2 番目のオプションでは、次のようになります。

<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 に答える