lunes, 19 de agosto de 2019

Display y DisplayTemplates

Display y DisplayTemplates sirven para pasar variables u objetos a las vistas y que a su vez estas puedan renderizar el contenido para que este sea legible para el usuario:

-------------------------------------------------------------------------------------------------------------------------
HomeController.cs
public ActionResult Index()
        {
            ViewBag.Propiedad = "Jhosef";

            return View();
        }

VISTA

@{
    ViewBag.Title = "Home Page";
}

@Html.Display("Propiedad")



-------------------------------------------------------------------------------------------------------------------------

Adicional se pueden crear DisplayTemplates para dar formato a los datos que se visualizan automáticamente mediante @Html.Display("property")

A continuación se crea la clase persona y se pasa mediante un ViewBag el objeto hacia la vista:

public class Persona
    {
        public string Nombre { get; set; }
        public string Apellido { get; set; }
        public bool Empleado { get; set; }
        public int Edad { get; set; }
        public DateTime FechaNacimiento { get; set;  }
    }

public class HomeController : Controller
{
    public ActionResult Index()
        {
            ViewBag.Propiedad = new Persona
            {
                Nombre = "Carlos",
                Apellido = "Flores",
                Edad = 30,
                Empleado = true,
                FechaNacimiento = new DateTime(1989, 3, 23)
            };

            return View();
        }
}

--VISTA QUE RECIBE LA INFORMACION

Index.cshtml

@{
    ViewBag.Title = "Home Page";
}

@Html.Display("Propiedad")


------------------------------------------------------------------------------------------------------------------

Como se observa anteriormente el campo empleado devuelve un "Si" en lugar de un check, esto ya que dentro de la carpeta "Home" que contiene las vistas se ha creado una carpeta de templates que debe llamarse "DisplayTemplates" que sirve para dar formato a los tipos de datos que se visualizan en las vistas de "HomeController".

En este caso por elemplo si se desea dar formato a un booleano se de crear la vista "Boolean.cshtml" y asi con los demas tipos que se desee formatear: String, DateTime, Int, etc.


A continuación se muestra un ejemplo de como formatear un booleano


Adicional si se mueve la carpeta DisplayTemplates dentro de la carpeta Shared las plantillas aplicarían a todas las vistas.

También se pueden crear templates para clases enteras como la clase Persona

@model WebApplication2.Controllers.Persona

<div class="form-group">
    @Html.LabelFor(model => model.Nombre)
    @Html.DisplayFor(model => model.Nombre)
</div>
<div class="form-group">
    @Html.LabelFor(model => model.Apellido)
    @Html.DisplayFor(model => model.Apellido)
</div>
<div class="form-group">
    @Html.LabelFor(model => model.Empleado)
    @Html.DisplayFor(model => model.Empleado)
</div>
<div class="form-group">
    @Html.LabelFor(model => model.Edad)
    @Html.DisplayFor(model => model.Edad)
</div>
<div class="form-group">
    @Html.LabelFor(model => model.FechaNacimiento)
    @Html.DisplayFor(model => model.FechaNacimiento)
</div>



wef
wef

No hay comentarios.:

Publicar un comentario