Melhores práticas ao implementar o Imodelbinder [fechado
-
20-09-2019 - |
Pergunta
Estou procurando um conjunto de práticas recomendadas para ser implementado IModelBinder
.
Eu li três livros diferentes de MVC e cada um faz algumas coisas ligeiramente diferentes em suas implementações sem nenhuma explicação real.
- O livro de Hanselman, Haack, Guthrie, Conery nem menciona
IModelBinder
- Palermo recomenda estender
DefaultModelBinder
em vez de implementação direta deIModelBinder
, mas eu realmente não vejo como alavancar os benefícios - Sanderson menciona atualizar instâncias de modelo existentes, além de ligar
ModelState.SetModelValue()
para seguir a convenção.
Eu só quero ter certeza de que meus ligantes de modelo estão seguindo convenções e que eu entendo adequadamente o inteiro ModelBindingContext
.
Alguma dica, truques, bons tutoriais para recomendar?
Solução
K Scott Allen tem algumas dicas sobre a ligação do modelo:http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx.
Outras dicas
Eu herdei do DefaultModelBinder, porque ele liga automaticamente as propriedades básicas na entidade. Eu o aprimorei, por isso liga também propriedades de navegação. Meu fichário executa a ligação herdada primeiro e depois procura por valores adicionais de propriedades de navegação no formulário. Eu acho que sua abordagem deve depender do que você realmente quer fazer. Você também pode usar o refletor e ver o que realmente fica por trás do fichário padrão. Isso pode convencê -lo a herdar.
Travis Illig recentemente escreveu um artigo muito bom sobre a validação do tipo de dados ao criar um fichário de modelo personalizado.
Eu nunca vi esse conselho antes e achei muito bom - então eu queria contribuir com este link: http://www.paraesthesia.com/archive/2012/01/31/data-type-validation-and-model-binding-in-asp-net-mvc.aspx
MVC Futures 2 tem um sistema de ligação de modelo extensível. Você pode descobrir mais na documentação de lançamento em http://aspnet.codeplex.com/releases/view/41742
Basta baixar "ASP.NET MVC 2 FUTURES MODELA FUTURA DOCUMENTAÇÃO DO MODELO"