2011-02-10 19 views
5

Empiezo a utilizar ASP .NET MVC. Y, como puedo ver, hay 2 enfoques para pasar datos para ver:Vista de tipo de letra fuerte contra vista de tipo dinámico

  1. Make View que hereda ViewPage y pasa el objeto dinámico a la vista.
  2. Realice una vista fuertemente tipada, que hereda ViewPage y pase una instancia de clase de modelo de vista personalizada a la vista.

¿Cuáles son los pros y los contras de cada uno?

+0

Creo que es menos argumentativo cuando no preguntas "qué es mejor" sino que simplemente pregunta por los pros/contras. –

Respuesta

4

Siempre use un tipo fuerte de vistas siempre que sea posible para que sepa exactamente qué datos se pasan como el Modelo a esa Vista. Si utiliza la dinámica, no siempre sabe cuáles serán los datos y podría generar errores en el tiempo de ejecución si las cosas cambian.

+0

Otras ventajas de las vistas fuertemente tipadas son: validación de código durante el tiempo de compilación de la vista e intellisense. –

3

Según JOSH DOOLAN, las vistas Fuertemente tipadas son más útiles para manejar los datos de Tipo complejo. Por ejemplo, tengo el una clase de una persona:

Public Class Person 

{ 
String _name; 
String _age; 
Pet _pet; 

// gets & sets below..etc 
} 

Si en el caso de que haya un caso de uso en la que quería para unir esta clase en particular a una forma (para crear una persona “nueva”), sería bastante directo hasta llegar al tipo complejo Pet.

Lo que harías es simplemente escribir con fuerza la persona en una vista particular y luego dentro de esa vista llamar a una plantilla o ver el archivo fuertemente tipeado a "Pet". Para asignar un tipo complejo a una plantilla/vista simplemente utiliza html mvc helpers Html.ControlFor. En este caso particular, ya que no se trata de un simple control HTML como un cuadro de texto que utilizaría el:

Html.EditorFor(model => model.Pet, "Pet") 

Aquí se puede ver, usted está poniendo una instancia de la vista del modelo “mascota” en la fuertemente Vista mecanografiada llamada "Mascota" para recuperar un modelo de vista lleno de datos cuando se envía el formulario de vista original.

Esta es una forma muy poderosa de simplificar y encapsular datos en sitios web más complejos y de mayor escala.

Cuestiones relacionadas