none
Uso de eventos en MVC RRS feed

  • Pregunta

  • Buenas tardes

    deseo saber como se asocian los eventos de un boton en una vista con un controlados.

    ejemplo:

    como uso el evento click de un boton en mvc.

    Como se dan cuenta estoy aprendiendo a programar empíricamente en mvc y no comprendo como funciona la captura de eventos, ya que en aspx maneja todo en el mismo lado vista y codebehing.

    Gracias por su colaboracion

    sábado, 28 de enero de 2017 22:56

Respuestas

  • Tienes en mente una aplicación aspx, que es un entorno orientado a eventos, en el que la infraestructura de WebForms traduce los POSTs de HTTP en eventos en el lado servidor. MVC no funciona así, no es un entorno orientado a eventos. Aquí, cuando pulsas un botón, te llega el POST en bruto al servidor, y no se dispara ningún evento, sino que se ejecuta el método de acción del controlador que tengas asociado a ese POST. Desde este punto de vista, el método de acción del controlador sería el equivalente al manejador del evento en ASPX. Dentro de ese método de acción es donde metes el código que quieras ejecutar cuando se pulse el botón.
    • Propuesto como respuesta Willams Morales domingo, 29 de enero de 2017 16:17
    • Marcado como respuesta Rene Paramo lunes, 30 de enero de 2017 1:54
    • Desmarcado como respuesta Rene Paramo lunes, 30 de enero de 2017 1:55
    • Marcado como respuesta Rene Paramo lunes, 30 de enero de 2017 1:55
    domingo, 29 de enero de 2017 13:20

Todas las respuestas

  • Tienes en mente una aplicación aspx, que es un entorno orientado a eventos, en el que la infraestructura de WebForms traduce los POSTs de HTTP en eventos en el lado servidor. MVC no funciona así, no es un entorno orientado a eventos. Aquí, cuando pulsas un botón, te llega el POST en bruto al servidor, y no se dispara ningún evento, sino que se ejecuta el método de acción del controlador que tengas asociado a ese POST. Desde este punto de vista, el método de acción del controlador sería el equivalente al manejador del evento en ASPX. Dentro de ese método de acción es donde metes el código que quieras ejecutar cuando se pulse el botón.
    • Propuesto como respuesta Willams Morales domingo, 29 de enero de 2017 16:17
    • Marcado como respuesta Rene Paramo lunes, 30 de enero de 2017 1:54
    • Desmarcado como respuesta Rene Paramo lunes, 30 de enero de 2017 1:55
    • Marcado como respuesta Rene Paramo lunes, 30 de enero de 2017 1:55
    domingo, 29 de enero de 2017 13:20
  • Buenas noches

    Williams gracias por responder mi inquietud, me queda claro la metodología de uso del controlador en mvc, pero si no fuera mucho pedir, podría darme un ejemplo (literal) de como funcionaria el uso de ese evento post en el controlador luego de usarse en la vista.

    Se lo agradecería enormemente.

    lunes, 30 de enero de 2017 1:58
  • Ejemplo:

    En la vista pones un <form> que dentro tenga un botón:

    <form method="Post"><input type="submit" /></form>

    Y en el mismo controlador que sirvió esa vista, añades un método de acción:

    [HttpGet]
    public ActionResult NombreDeLaVista()
    {
        // Esto sirve la vista inicial
        return View();
    }
    [HttpPost]
    public ActionResult NombreDeLaVista(int? noSeUsa)
    {
        // Esto se ejecuta cuando hacen click en el botón
        return View();
    }

    Obviamente, esto está muy simplificado. En la vista puedes usar un "helper" @hHtml.Form para que te genere el <Form> con todos sus parámetros incluyendo la Url del controlador, y en los métodos de acción podrías devolver un modelo a la vista para que ésta muestre datos, y en los parámetros de entrada del método post podrías recibir datos de la vista si hubiera controles input en el Form (te he puesto un "noSeUsa" para que no dé error al compilar).

    lunes, 30 de enero de 2017 7:16