代码之家  ›  专栏  ›  技术社区  ›  jerhinesmith

显示来自Ajax请求的内容结果文本

  •  0
  • jerhinesmith  · 技术社区  · 16 年前

    我有一个 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] . 在数据库中进行了更改,我猜我可以访问 内容结果 在那里面的某个地方 r 对象,但我很难在网上找到好的示例/文档。

    有什么想法吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Dmitry Perets    16 年前

    是的,前面的答案是绝对正确的。只要这样做:

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

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