Différence entre viewbag et viewstate?
Est-il une différence fonctionnelle entre l'état d'affichage dans les Formulaires web et ViewBag MVC? Ils semblent être la "même chose". Et peuvent être utilisés de la même façon. Je demande parce que MVC favorise les apatrides Web et pas de bourrage de données dans la page de la météorisation et de ralentissement des performances. Mais il semble que vous pouvez le faire en MVC. Tout ce qu'ils n'ont, apparemment, est juste de lui donner un nouveau nom.
source d'informationauteur dotnetN00b
Vous devez vous connecter pour publier un commentaire.
ViewState dans les Formulaires Web a été la sérialisation des données de formulaire dans un caché, chiffré champ dans le formulaire, afin que les données pourraient être re-lié sur la publication.
ViewBag/ViewData est un dictionnaire où vous pouvez "trucs" des données. Par exemple, vous pouvez ajouter dans votre Contrôleur, puis accéder à votre Vue. Les données sont
dynamic
ce qui rend difficile le travail avec les données. ViewBag n'est pas envoyé au client, c'est une partie de la MVC (serveur de pipeline).Les deux devraient être évités.
ViewState par, eh bien, ne l'utilisez pas et de trouver des solutions de contournement. Et ViewBag devrait être évitée par l'utilisation de Viewmodel.
Viewstate est affiché de retour avec le contenu d'un formulaire vers le serveur et donc, les valeurs sont disponibles sur le post de retour. Un viewbag ne contient que les valeurs jusqu'à ce que la page est servi ensuite le ViewBag est supprimé de la mémoire. Ainsi, vous pouvez utiliser l'état d'affichage de tenir l'état entre les appels, mais vous ne pouvez pas faire la même chose avec un ViewBag.
le ViewBag n'est pas envoyé au client ( Navigateur ). Son purement quelque chose à l'utilisation d'une transition du contrôleur à la Vue ( ce qui est en avant de son envoyé au client).
MVC, Si vous obtenez une publication de la page, puis vous l'habitude de récupérer votre "état", comme le Viewstate, le seul état que vous avez est ce que vous en envoyer au navigateur, et tout ce que vous renvoyez.