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 {get; set;}
public string Modelo {get; set;}
public int Stock {get; set;}
public decimal Precio {get; set;}
}
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 string Marca {get; set;}
public string Modelo {get; set;}
public int Stock {get; set;}
public decimal Precio {get; set;}
}
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{
public ActionResult Smartphones(String marca, String modelo)
{
SmartPhone phone = new SmartPhone();
phone.Marca = marca;
phone.Modelo = modelo;
return View(phone);
}
}
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>
<!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