2011-05-10 122 views
3

對於學校,我必須開發一個帶有ASP.NET的Twitter客戶端。從ajax響應獲取數據

在應用程序中,我有鳴叫與刪除鏈接的列表。這個鏈接是用助手Ajax.ActionLink()創建的,我爲OnSuccess事件指定了一個回調函數。

此鏈接是好的:執行動作,觸發回調,但我不能訪問Ajax響應發送的數據。

回調只接收一個參數。這裏是這個對象的轉儲:

>> Sys.Mvc.AjaxContext 
$0: 0 
$1: null 
$2: Sys.Net.XMLHttpExecutor 
$3: Sys.Net.WebRequest 
$4: null 

我的responseText在哪裏?我知道這個響應有一個內容(根據Chrome開發者工具),我真的想訪問它。

加成:可以Ajax客戶機自動解析響應作爲JSON(操作中正確返回JSON與JSON方法)?

謝謝! ;)


該學校項目的截止日期已經結束。 我在響應中使用了get_data。

我對缺少文檔這個平凡的需要頗爲失望。即使現在我知道的方式,我無法在MSDN上找到...這樣的可惜。 :(

回到我的珍貴的Ruby on Rails的,我感覺好多了。

良好的一天,感謝您的幫助反正!:)

回答

2

嘗試調用您AjaxContext的get_object()來得到一個JavaScript對象或GET_DATA()來獲取文本。一個更簡單的方法是讓你的OnSuccess函數接受一個參數,它將是返回的對象。

public ActionResult ReturnJson() 
{ 
    return Json(new { TestMessage = "Hello, world!" }, JsonRequestBehavior.AllowGet); 
} 

和視圖...

<script type="text/javascript"> 
    function AjaxSuccess(obj) { 
     alert(obj.TestMessage); 
    } 
</script> 

@Ajax.ActionLink("Say Hi", "ReturnJson", new AjaxOptions() { OnSuccess = "AjaxSuccess" }) 
0

如果你想你的代碼,您沒有在訪問的responseText想要使用AJAX(異步JavaScript和XML),你想使用SJAX(同步JavaScript和XML)。

當使用AJAX代碼不會等待這個responseText它只是繼續執行,所以如果你嘗試後面的代碼中引用它,它可能無法正常工作,因爲它可能沒有尚未處理。

當使用SJAX你的代碼將等待responseText的繼續執行之前。

我不使用ASP.NET,所以我不能幫助代碼。

這裏是它是如何在JavaScript中完成的:JavaScript - AJAX/SJAX - Submit Form Data to a Script

+0

的的onSuccess被稱爲當結果回來 – 2011-05-25 06:02:02