Vinicius Quaiato

{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}

ASP.NET MVC 3: dynamic view models e diretiva model


Passar um model dynamic para a view não é uma novidade do ASP.NET MVC 3. Já na versão 2 podíamos fazer isso, afinal dynamic é uma funcionalidade do .NET 4.

Especificando models no MVC2

No ASP.NET MVC 2 para especificar o model de uma view nós utilizamos algo parecido com:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<minhaclasse>" %></minhaclasse>

Já quando queremos um model dinâmico, ou seja um dynamic model utilizamos:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %></dynamic>

Não é nada complexo, mas é bem feio. Cheio de sujeira, ruído e tudo o mais. E nós não gostamos do nosso código sujo não é?!

A diretiva @model

No ASP.NET MVC 2 no entando não tínhamos a facilidade da diretiva @model que temos no ASP.NET MVC 3.A diretiva @model é uma forma simplificada (realmente mais simples) de informar a view sobre qual o tipo do model que ela deverá utilizar.Para especificar o model de uma view no MVC 3 precisamos codificar toda a listagem abaixo:

@model MinhaClasse

\o/ É isso mesmo! Apenas isso! Não existe mistérioo e não existem segredos!E o dynamic model? Ah sim, mais a complexidade abaixo:

@model dynamic

\o/

Html helpers e dynamic models

Importante dizer que na utilização de dynamic models não conseguimos utilizamos Html helpers como:Html.LabelFor(model => model.Propriedade)Para isso precisaríamos de um ViewModel(ou o model mesmo).É isso galera, com isso estamos vendo novamente simplicidade do Razor. Espero que aproveitem.

Abraços, Vinicius Quaiato.

Voltar

Fork me on GitHub