RenderText / JsonConvert

时间:2012-07-02 08:11:40

标签: c# json extjs

我有一个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参数设置为“User deleted successfully”,但我需要通过在通过url调用的delete函数中使用RenderText来传递它。 以下是通过url'user / delete / castle'调用的delete函数的代码:

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分: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);

}
});
}