lunes, 19 de enero de 2015

Post 8. Intercambio de Datos en MVC - Valores desde controlador hacia la vista (II)

En el post anterior vimos como enviar datos desde el controlador hacia la vista utilizando ViewData y ViewBag, en esta ocación mostraremos otra forma de hacerlo:

Enviar datos a la vista a través de @Model


Esta nueva forma es la forma mas práctica y eficiente de enviar datos hacia el controlador y ofrece muchas más ventajas que ViewData y ViewBag. Pera esto debemos definir una Clase la cual servirá como modelo para nuestra vista.

Definimos una clase llamada Smartphone (para cuestiones practicas lo crearemos dentro del mismo controlador, mas adelante veremos el mejor lugar para ubicarlo):
public class SmartPhone{
   public string Marca {getset;}
   public string Modelo {getset;}
   public int Stock {getset;}
   public decimal Precio {getset;}
}
Dentro de nuestro controlador crearemos una nueva instancia de la clase SmartPhone y le agregaremos los datos traídos desde la url, luego lo enviaremos hacia nuestra vista con el comando View():
public class CatalogoController : Controller
{
   public ActionResult Smartphones(String marca, String modelo)
   {
      SmartPhone phone = new SmartPhone();
      phone.Marca = marca;
      phone.Modelo = modelo;
      return View(phone);
   }
}
Ahora para poder mostrar los datos desde nuestra vista debemos el
Dentro de la vista agregamos lo siguiente:

@model IntercambioDatos.Controllers.SmartPhone
<!DOCTYPE html>
<html>
<head>
    <title>Smartphones</title>
</head>
<body>
Prueba usando un Model<br />
Marca: @Model.Marca<br />
Modelo: @Model.Modelo<br />
Precio: @Model.Precio<br />
Stock: @Model.Stock
</body>
</html>

Ahora ejecutamos y mostramos.


Podemos ver que los datos de nuestro modelo se pintaron en nuestra vista y aparentemente de la misma manera que un ViewBag. Las (grandes) ventajas las veremos cuando enviemos datos de la vista hacia el controlador.

Nota: a pesar qde que no colocamos el valor para los atributos Precio y Stock, se mostraron 0, porque ese es el valor por defecto para esos  tipos de datos (int y decimal).

Recuerden que las fuentes de este post podrán ser descargadas aqui.
Nos vemos en el siguiente post

0 comentarios :

Publicar un comentario

Contactos

Post Populares

123.Net

123.Net

Vistas a la página totales

Con tecnología de Blogger.