ASP, Javascript, Ajax y jQuery




Una de las primeras cosas que me llamó la atención al comenzar a trabajar con Razor es la cantidad de formas que hay de de pasarle a la view, variables, dtos, etc. para trabajar en el lado del cliente.
Ejemplo 1: supongamos que tenemos el siguiente DTO

            
        

Entonces desde el controlador pasamos los datos a la view de la siguiente manera.

            
        

Entonces en la view manejamos las variables con los datos de la siguiente manera

            
        

Si lo que pasamos a la view fuera una lista, en el controlador tendríamos algo así.

            
        

y en la view...

            
        


Otra forma de pasar datos de un controller a la view es mediante ViewBag y ViewData...
ViewBag.Nombre = "Marcelo";
y en la view simplemente

            

En la view se permiten este tipo de códigos.

            
        


Ahora supongamos que queremos pasar los datos de un FORM en la view a un controller.
Ejemplo 2: Usando el DTO de mas arriba...
Tenemos el siguiente controller.

            
        

...y la siguiente view.

            
        
Esto funciona porque los name="..." del input coinciden con el dto.


Ahora supongamos que esto lo queremos hacer usando AJAX. Usando el mismo DTO de arriba,
Ejemplo 3: Armamos el controller de la siguiente forma.

            
        

Nos tenemos que asegurar que JQuery este presente en la página (o en _Layout, o la página que la contenga)

            
        

El formulario sería...

            
        

y el script AJAX

            
        

Nota: también se podrían pasar los datos al controller de esta forma dentro del $.ajax({... :

            
        

y en el controller, recibirlos con

            
        

Sin [FromBody], y sin JSON.stringify.