2011-05-10 119 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