2012-07-02 56 views
0

我有一個DeleteUser函數,當用戶點擊一個actioncolum中的刪除行圖標時被調用。 下面是函數的代碼:RenderText/JsonConvert

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參數爲「用戶刪除成功」,但我需要通過使用RenderText在通過url調用的刪除函數中傳遞該參數。 下面是刪除功能的代碼,通過獲取的URL稱爲「用戶/刪除/城堡」:

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

沒有人有任何祕訣,如何做到這一點?我是Ajax請求和JSON的新手。

感謝您的幫助。

回答

0

你必須像

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

返回一個JSON對象到客戶端。 下面是做到這一點的方式:

Server代碼:

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); 

} 
}); 
} 
+0

我已經編輯我的答案。包含處理成功=錯誤情況的信息。祝你好運! – jorel

+0

謝謝!有效!但是,我不太瞭解代碼中發生了什麼。 obj如何與resp鏈接?到底發生了什麼?另外,如果成功= false,我還希望顯示一條消息,說:「錯誤!用戶未刪除!」。我需要在代碼行中創建一個if-else語句var obj = new {success = true,message =「Your success message」}?我試過這樣做,但它給了我一個錯誤。再次感謝! - – anitacynax