2011-01-14 90 views
1

我已经在成功调用服务器端方法并返回Json的MVC应用程序中创建了一个ActionLink。AjaxContent javascript参数不包含函数get_data()

我的问题是,在OnSuccess JavaScript函数接收到的AjaxContext参数不包含.get_data()函数。也没有在this SO article中指定的任何其他功能。

上下文对象只返回在服务器端方法中构造的数据。

@Ajax.ActionLink("Remove from cart", "RemoveFromCart/" + @item.Id, new AjaxOptions() { OnSuccess = "handleUpdate", HttpMethod="POST" }) 


[HttpPost] 
     public ActionResult RemoveFromCart(int id) 
     { 
      ShoppingBasket basket = ShoppingBasket.GetShoppingBasket(this.HttpContext); 
      basket.Items.Remove(basket.Items.Find(i => i.Id == id)); 
      ShoppingCartRemoveViewModel results = new ShoppingCartRemoveViewModel 
      { 
       DeleteId = id, 
       Message = id + " has been removed." 
      }; 

      return Json(results); 
     } 


<script type="text/javascript"> 
    function handleUpdate(context) { 
     alert('deleted ' + context.DeleteId); 
     context.get_data(); <-- ERROR 
    } 
</script> 

虽然在返回数据上调用Json(),但上下文似乎不是AjaxContext对象。有任何想法吗?

感谢

回答

0

萤火虫显示上下文对象是一个XMLHttpRequest对象

摆弄周围了一点后,我终于得到了使用

<script type="text/javascript"> 
    function handleUpdate(context) { 
    alert(context.responseText); 
    } 
</script> 
0

JSON数据我有更好的运气:

(context.valueOf() == "blah has been removed") 
相关问题