2011-03-09 20 views
5

Estoy pasando por this tutorial on codeplex, que es la aplicación MusicStore.MVC (3) handleUpdate

En un senario está agregando registros de música a la cesta de la compra. Luego, también permite a los usuarios eliminarlo. Según tengo entendido, lo hace a través de una devolución de datos de Ajax que se implementa en Controller.

Lo que me desconcierta es que hay referencias de una función de JavaScript llamada "handleUpdate()" que se declara en la misma página. Parece actualizar la cesta de la compra después de que, por ejemplo, se haya eliminado un artículo de la cesta. No puedo ver que se llame desde cualquier lugar. ¿Podría alguien explicar cómo y cuándo se llama?

+0

La razón por la que esta pregunta es becouse Estoy sospechando que hay alguna declaración evento orden interna (en este caso su handleUpdate), que proporciona MVC? o lo declaramos en otro lugar, en cuyo caso no he podido averiguarlo por alguna razón. Gracias – daehaai

Respuesta

4

No se hace referencia en el código, pero se menciona en el tutorial. Parece como un resto para mí.

Presupuesto de http://www.asp.net/mvc/tutorials/mvc-music-store-part-8:

... en lugar de utilizar un Html.ActionLink a eliminar elementos de la compra, vamos a uso Ajax.ActionLink:

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

Este método funciona de manera muy similar a el método de ayuda Html.ActionLink, pero en lugar de publicar el formulario solo hace un AJ Devolución de llamada AX a nuestro RemoveFromCart. RemoveFromCart devuelve un resultado serializado JSON, que se pasa automáticamente al método JavaScript especificado en nuestro parámetro AjaxOptions OnSuccess - handleUpdate en este caso. La función handleUpdate Javascript analiza los resultados JSON y realiza cuatro actualizaciones rápidas a la página utilizando jQuery:

  1. Elimina el álbum eliminado de la lista
  2. Actualiza el recuento de la compra en la cabecera
  3. Muestra un mensaje de actualización para el usuario
  4. Actualiza la cesta precio total
+0

Debe haber mirado esto, gracias Daniel. – WiseGuy