2011-03-09 20 views
5

我正在通过this tutorial on codeplex,这是MusicStore应用程序。MVC(3)handleUpdate

在senario中,它将音乐记录添加到购物篮中。然后它也允许用户删除它。根据我的理解,它通过在Controller中实现的Ajax回发来完成。

让我感到困惑的是,有一个名为“handleUpdate()”的JavaScript函数的引用在同一页面上声明。例如,在购物篮已从篮子中取出后,它似乎更新了购物篮。我看不到它从任何地方被调用。任何人都可以请解释如何和何时被称为?

+0

我问这个问题的原因是因为我怀疑MVC提供了一些内置事件声明(本例中为handleUpdate)?或者我们是否在其他地方宣布它,在这种情况下,我由于某种原因无法找到它。谢谢 – daehaai 2011-03-09 12:44:41

回答

4

代码中未引用它,但在教程中提及。看起来像是一个剩余的我。

http://www.asp.net/mvc/tutorials/mvc-music-store-part-8报价:

...而不是使用Html.ActionLink 删除从购物车中的商品,我们 使用Ajax.ActionLink:

@Ajax.ActionLink("Remove from cart", "RemoveFromCart", 
new { id = item.RecordId }, new AjaxOptions { OnSuccess = "handleUpdate" }) 

此方法的作用非常类似于 的Html.ActionLink帮助器方法,但是 而不是张贴表格它只是 使得AJ AX回拨到我们的 RemoveFromCart。 RemoveFromCart 返回JSON序列化结果 ,该结果自动传递到 AjaxOptions OnSuccess参数中指定的 JavaScript方法 - handleUpdate。该 handleUpdate JavaScript函数 解析JSON结果和执行 快捷的四更新使用 jQuery的页面:

  1. 从列表中删除
  2. 更新在头车数量已删除的专辑
  3. 显示器给用户的更新信息
  4. 更新购物车总价
+0

一定得看完这个,谢谢Daniel。 – WiseGuy 2013-10-07 20:15:29