正在调用Grails重定向,但未呈现页面
朋友们下午好 在过去的几天里,我一直在与一个极其令人沮丧的问题作斗争,现在我终于筋疲力尽了。我的团队中每一个有一点时间的人似乎也无法解决这个问题,这让我发疯 无论如何,我有一个带有删除操作的控制器,当用户确认从引导模式对话框中删除时,会调用该控制器。在调试过程中调用该操作并命中重定向语句。它甚至将chrome开发者工具中的调用显示为被调用 但是,由于某些原因,页面从不重定向。我甚至尝试过在没有其他代码的情况下显式重定向到Google。我不知道交易是什么。我会发布任何相关代码;如果您需要其他代码,请告诉我 CatalogController.groovy 引导模式标记正在调用Grails重定向,但未呈现页面,grails,redirect,twitter-bootstrap,controller,modal-dialog,Grails,Redirect,Twitter Bootstrap,Controller,Modal Dialog,朋友们下午好 在过去的几天里,我一直在与一个极其令人沮丧的问题作斗争,现在我终于筋疲力尽了。我的团队中每一个有一点时间的人似乎也无法解决这个问题,这让我发疯 无论如何,我有一个带有删除操作的控制器,当用户确认从引导模式对话框中删除时,会调用该控制器。在调试过程中调用该操作并命中重定向语句。它甚至将chrome开发者工具中的调用显示为被调用 但是,由于某些原因,页面从不重定向。我甚至尝试过在没有其他代码的情况下显式重定向到Google。我不知道交易是什么。我会发布任何相关代码;如果您需要其他代码,
×
删除目录
确实要删除此目录吗?
目录号:
${catalog.legacyId}
目录名称:
${catalog.title}
样本数量:
${catalog.sampleCount}
对
点击这里
不
我尝试了各种不同的按钮(g:links、button、g:remoteLinks等),并清理了删除操作。我还尝试删除我的浏览器缓存、grails缓存、运行grails clean和一系列其他任务,以查看问题是否在我的环境中,但其他人也没有得到重定向
请原谅这个丑陋的编码,一旦重定向成功,它就会被清除。我也欢迎提出建议和改进:)
非常感谢您的时间和帮助 当前显示的版本无法工作,因为remotelink不会执行重定向,因为响应是从JS解析的。您需要在JavaScript中手动处理它,或者使用g:link
此外,您不能将
data dismission=“modal”
与链接结合使用,因为twitter引导将拦截您的点击并阻止任何进一步的服务器通信。如果您删除data dislose=“modal”,它将起作用。您需要删除所有这些返回语句,您应该可以开始了。控制器中的最后一条语句需要是重定向或渲染(或仅使用模型映射的隐含渲染)。我认为他在调用重定向后使用return
停止后续代码的执行。我已尝试删除return语句,但没有任何效果。GalmWing是正确的,因为返回是为了防止代码的其余部分被命中。g:link也不会导致重定向。除非我的代码是错误的:link您不能将data dismission=“modal”
与链接结合使用,因为twitter引导将拦截您的点击并阻止任何进一步的服务器通信。如果您删除data dismission=“modal”
,它将起作用。谢谢您,克鲁多夫!你的建议使我走上了正确的道路!这是让它正常工作的代码<代码>否其他按钮不起作用,因为它们呈现的是在幕后处理的AJAX。难怪它没有在浏览器中渲染。。。
def delete = {
def catalog = Catalog.get(params.id)
if (catalog == null) {
redirect(controller: 'home', action: 'dashboard')
println "Catalog is null and cannot be Deleted"
return
}
if (request.method == "POST") {
//catalog.deleted = true TESTING UNTIL REDIRECT WORKS
if (catalog.validate()) {
userService.addUserActivity("Deleted catalog " + catalog.title, catalog.class.getName(), catalog.id, null)
flash.notice = "Catalog has been deleted"
catalog.save()
println "Catalog successfully deleted"
}
else {
flash.error = "There was an error marking the catalog deleted"
}
redirect(controller: 'home', action: 'dashboard')
return
}
[ catalog: catalog ]
}
<div id="deleteDialog" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">×</button>
<h3 id="myModalLabel">Delete Catalog</h3>
</div>
<div class="modal-body">
<p><strong>Are you sure you want to delete this Catalog?</strong></p>
<div class="dialogInnerInfo">
<div class="row-fluid control-group">
<label class="control-label" for="catalogNumber">Catalog Number:</label>
<div class="controls">
<label id="catalogNumber" >${catalog.legacyId}</label>
<input type="hidden" name="id" value="${catalog.id}"/>
</div>
</div>
<div class="row-fluid control-group">
<label class="control-label" for="catalogTitle">Catalog Title:</label>
<div class="controls">
<label id="catalogTitle">${catalog.title}</label>
</div>
</div>
<div class="row-fluid control-group">
<label class="control-label" for="catalogTitle">Number of Samples:</label>
<div class="controls">
<label id="catalogTitle">${catalog.sampleCount}</label>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<g:remoteLink class="btn btn-primary" controller="catalog" action="delete" id="${catalog.id}" data-dismiss="modal">Yes</g:remoteLink>
<button class="btn btn-primary" value="${catalog.id}" data-dismiss="modal" onclick="${remoteFunction(action:'delete', controller: 'catalog', params: '\'id=\' + this.value')}">Click Here</button>
<button class="btn" data-dismiss="modal" aria-hidden="true">No</button>
</div>
</div>