¿Qué se entiende por "datos de visualización fuertemente tipeados" en Asp.Net MVC?qué exactamente está fuertemente tipado Ver datos en Asp.Net MVC
Gracias
¿Qué se entiende por "datos de visualización fuertemente tipeados" en Asp.Net MVC?qué exactamente está fuertemente tipado Ver datos en Asp.Net MVC
Gracias
Una vista fuertemente tipada en ASP.NET MVC hereda de System.Web.Mvc.ViewPage<T>
y contiene una propiedad de modelo que es del tipo especificado por T. Esto permite que intellisense funcione en sus vistas.
Cada View tiene una propiedad Model
. Escribir con fuerza una Vista significa hacerla heredar de alguna ViewPage<T>
, y la propiedad del Modelo se convierte en el tipo de T. Si no escribe su vista con fuerza, el Modelo es de tipo "Objeto".
Escribir fuertemente el modelo de su Vista tiene ventajas, ya que puede acceder directamente a las propiedades del Modelo. Obtiene Intellisense y compilador de comprobación, en lugar de depender de utilizar "cadenas mágicas" para acceder a un diccionario ViewData, que se rompería en el tiempo de ejecución si su modelo cambiara alguna vez.
Por ejemplo, si usted tenía
public class Person
{
public int Age { get; set; }
}
y usted hizo su Ver inflexible de la clase Person
, que sería capaz de acceder a Model.Age
de sus plantillas de vista. Si su Vista no fue tipada con fuerza, entonces Model
no tendría propiedades para acceder, y tendría que convertirla explícitamente en un tipo o pasar sus datos a través de un diccionario ViewData.
Para escribir con fuerza esta vista, simplemente haga que herede de ViewPage<Person>
.
Digamos que tiene la necesidad de mostrar varios datos poco relacionados en una vista: información de contacto, previsiones de ventas e historial de llamadas. Simplemente puede insertarlos en ViewData y sacarlos y escribirlos con fuerza desde la Vista; sin embargo, un mejor enfoque sería crear un Modelo personalizado que encapsule cada uno de estos. Luego, debe escribir con fuerza la vista en este modelo personalizado. Juega en la seguridad de tipo y hace que la asistencia de código sea más intuitiva, entre otros beneficios, como la capacidad de prueba.