dans asp.net mvc, si je pousse un dictionnaire ou un tableau d'objets dans ViewData et lire qu'à mon avis par rapport à la création d'une classe de modèle de vue a cette même structure de données, existe-t-il une différence de performance ou autre considération ou devrais-je m'attendre au même temps de réponse?est-il une performance différente entre passer quelque chose dans viewdata par rapport à un modèle de vue
Répondre
Le temps de réponse serait minime et n'aurait pas vraiment d'impact significatif sur la performance.
Il diminue même vos performances et est très hacky
parce que vous devrez faire un usage intensif de boxing and unboxing qui échouera finalement.
Pourtant, la vue modèle est la appropriate
façon de fournir des données de modèle à la vue car il vous donne beaucoup plus de possibilités de travailler avec:
Il fournit:
- Saver utilisation de ViewModels
- Validation facile du modèle (même celle avec)
- Vues fortement typées (vous y parviendrez après le déballage ..)
- généré automatiquement Voir qui ne doit pas être ajusté (impressionnant lorsque vous utilisez des modèles T4) -> il vous fera économiser beaucoup de temps lorsque vous faites des ajustements à votre modèle ..
Et au-dessus de cette. L'ensemble du cadre est construit sur ce petit gadget qui vous accompagne dans votre voyage.
Maintenant, allez break du code! : -]
Si vous convertissez, à la fin de la vue, à partir de ViewData vers votre dictionnaire alors oui il y aura un coup de performance.
De plus, vous introduisez du code dans la vue. Les vues doivent avoir peu ou pas de code.
Votre vue peut hériter d'une classe pour une raison. utilise le. ViewData ne devrait être utilisé que pour une fois de petites chaînes comme mayby titres de page ou quelque chose.
Je ne fais que réparer un projet ici où aucune vue n'hérite d'un modèle et utilise à la place ViewData pour les listes et autres. Parfois, 15 d'entre eux dans une seule vue. La fichue chose est si lente mais en remplaçant ViewData par des modèles, nous récupérons la vitesse.