gpt4 book ai didi

grails - 正在调用Grails重定向,但未呈现页面

转载 作者:行者123 更新时间:2023-12-02 14:54:15 26 4
gpt4 key购买 nike

下午好 friend 。

在过去的几天里,我一直在面对一个极其令人沮丧的问题,终于到了尽头。我团队中花了点时间的每个人似乎也无法弄清楚问题,这让我发疯了!

无论如何,我有一个带有删除操作的Controller,当用户从Bootstrap模态对话框中确认删除时会调用它。该 Action 被调用,并且重定向语句在调试中被命中就好了。它甚至在chrome开发人员工具中显示调用为被调用!

但是,由于某种原因,页面永远不会重定向。我什至尝试在操作中没有其他代码的情况下显式重定向到Google。我不知道这是什么交易。我将发布任何相关代码;让我知道您是否还需要其他代码。

CatalogController.groovy

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 ]
}

bootstrap 模式标记
<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>

我尝试了各种不同的按钮(g:链接,按钮,g:remoteLinks等),并且还清理了delete操作。我还尝试过删除浏览器缓存,grails缓存,运行grails-clean和其他任务,以查看问题是否在我的环境中,但其他人也无法获得重定向。

请原谅丑陋的编码,一旦重定向成功,它将被清理。我也欢迎提出建议和改进:)

非常感谢您的时间和协助!

最佳答案

当前显示的版本无法正常运行,因为远程链接不会进行重定向,因为响应是从JS中解析出来的。您需要在JavaScript中手动进行处理或使用g:link。

另外,您不能将data-dismiss="modal"与链接结合使用,因为twitter bootstrap会拦截您的点击并阻止进一步的服务器通信。如果删除data-dismiss =“modal”,它将起作用。

关于grails - 正在调用Grails重定向,但未呈现页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13185960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com