0

我有一个 DeleteUser 函数,当用户单击 actioncolum 中的删除行图标时会调用该函数。这是该函数的代码:

function DeleteUser(id) { 
Ext.Ajax.request ({
url: 'user/delete/castle',
params: {id: id},
success: function (result,request){
Ext.MessageBox.alert('Success', result.responseText);
},
failure: function (result, request){
alert(result.responseText);
}
});
}

现在,当删除用户时,会出现一个标题为“成功”的弹出窗口,但 result.responseText 参数为空。我需要 result.responseText 参数为“用户已成功删除”,但我需要通过在通过 url 调用的删除函数中使用 RenderText 来传递它。这是通过 url 'user/delete/castle' 调用的删除函数的代码:

public void Delete (int id){
CancelView();
CancelLayout();
User user = User.FindUser(id);
user.Delete();
RenderText(JsonConvert.SerializeObject(???));
}

有没有人有关于如何做到这一点的任何提示?我是 Ajax 请求和 JSON 的新手。

谢谢您的帮助。

4

1 回答 1

0

您必须返回一个 JSON 对象,例如

{ success = true, message = 'Your message'}

给客户。这是执行此操作的方法:

服务器代码:

var obj = new {success = true, message = "Your success message"}
RenderText(JsonConvert.SerializeObject(obj));

要通知失败,您可以success = false在上面的代码中设置。

客户端代码:

function DeleteUser(id) { 
Ext.Ajax.request ({
url: 'user/delete/castle',
params: {id: id},
success: function (response) {
                var resp = Ext.decode(response.responseText);
                alert(resp.message); 
                if (success == false)
                {
                   // perform any specific error handling task
                }                    
            },
failure: function (result, request){
     // Usually this function is called on communication failures. Not called if success = false
     alert(result.responseText);

}
});
}
于 2012-07-02T11:51:27.307 回答