所以,我有一个控制器设置如下: -
def show(Long id) {
def testObjectInstance = TestObject.get(id)
if (!testObjectInstance) {
redirect(action: "list")
return
}
println("show object ID " + testObjectInstance.id)
render(template: "show", model: [testObjectInstance: testObjectInstance])
}
然后我收到了一个包含以下代码的帖子: -
function loadObject(objID){
var pathPrefix = $("#fullPathPrefix").val();
$.postJSON(pathPrefix + "testObject/show",{id : objID}, function(data) {
$("#rightObjMgtPane").html(data);
});
}
我可以看到所有println按预期显示,页面甚至按预期呈现,但突然整个页面因某些原因刷新,我无法解决原因。
我在另一个地方有另一个控制器似乎工作,它有完全相同的渲染线,并且工作正常,所以我不知所措。
答案 0 :(得分:1)
尝试使用
$.ajax({
type: 'POST',
url: '/testObject/Show',
data: '{"id":"objID"}',
success: function(data) {
$("#rightObjMgtPane").html(data);
},
contentType: "application/json",
dataType: 'json'
});
而不是
function loadObject(objID){
var pathPrefix = $("#fullPathPrefix").val();
$.postJSON(pathPrefix + "testObject/show",{id : objID}, function(data) {
$("#rightObjMgtPane").html(data);
});
}
另一方面,我需要警告你使用:
if (!testObjectInstance) {
redirect(action: "list")
return
}
将在testObject / list
中的任何位置进行渲染