从AJAX请求显示内容结果文本

时间:2009-04-15 19:13:44

标签: javascript asp.net-mvc asp.net-ajax

我的Ajax.Action链接连接到我的控制器类中的post方法,该方法返回ContentResult。在查看像firebug这样的工具时,我能够提出请求并获得响应,但是我在尝试实际访问或对响应文本做任何事情时遇到了问题。

基本上,我的控制器中有这样的东西:

public ContentResult RevertToDefault(int id, string default)
{
  /** Update the DB **/

  return Content(default);
}

这在我看来:

<%= Ajax.ActionLink(
  "Revert",
  "RevertToDefault",
  new { id = Model.MyObject.ID, default = Model.MyObject.DefaultValue },
  new AjaxOptions { OnComplete = "function(r) { alert(r); }" })%>

现在,警报只返回[object Object]。更改是在数据库中进行的,我猜我可以访问ContentResult对象中的r,但我很难在线找到好的示例/文档。< / p>

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

据我所知,OnComplete事件处理程序的参数是ajaxContext,因此您可以尝试ajaxContext.get_response()并获取响应对象或ajaxContext.get_data(),它应返回作为响应发送的实际数据。

答案 1 :(得分:1)

是的,之前的答案绝对正确。就这样做:

<%= Ajax.ActionLink(
  "Revert",
  "RevertToDefault",
  new { id = Model.MyObject.ID, default = Model.MyObject.DefaultValue },
  new AjaxOptions { OnComplete = "function(r) { alert(r.get_data()); }" })%>