J'ai un peu répondu à ma propre question je pense mais je veux m'assurer que je comprends bien. J'ai d'abord pensé que lorsqu'un utilisateur fournissait des valeurs dans un formulaire, celles-ci étaient soumises en tant que partie de Viewstate, car TextBox.Text faisait partie de viewstate. Maintenant, j'ai découvert que les valeurs fournies par l'utilisateur ne sont réellement appliquées aux contrôles qu'après l'événement OnLoad. Cela m'a troublé car je pensais que viewstate était chargé dans les contrôles avant OnLoad (ou lors de l'appel de Controls.Add()). J'ai parcouru la documentation sur la page et contrôle des cycles de vie à quelques reprises et je me rends compte maintenant qu'il y avait une étape différente pour gérer les données de publication (cette étape n'apparaissait pas dans beaucoup de documentation :(Viewstate vs Postback
1) Donc, les données de publication, le type de l'utilisateur dans les champs, est appliqué après l'événement OnLoad, et les données Viewstate sont appliquées juste avant l'événement OnLoad
2) Donc, tout ceci signifie que le serveur reçoit deux valeurs lors de la publication. pour une propriété TextBox.Text, celle dans Viewstate, qui est comme la "ancienne" valeur de la demande précédente, et la nouvelle valeur fournie par l'utilisateur dans le formulaire?
3) Le framework .net applique-t-il les mêmes données de publication que Viewstate, en ce sens qu'il trouve le contrôle approprié via sa propriété ID? Ceci est important car je crée des contrôles de manière dynamique et je peux même avoir des formulaires qui changent de structure au fil du temps et qui doivent réfléchir à la façon dont je gère les ID. Jusqu'à présent, je n'ai pas mis la propriété ID et tout fonctionne bien, mais les choses peuvent être plus compliquées plus tard.
4) Les données viewstate sont-elles toujours modifiées du côté client? Ou est-ce que viewstate est identique à ce qui a été envoyé par le serveur dans la requête précédente (en supposant qu'il n'y a pas de falsification)? Mon impression était que le serveur encodait toutes les propriétés de contrôle dans le viewstate, et du côté client lorsque l'utilisateur soumettait le formulaire, le champ viewstate était décodé, modifié, codé et soumis au serveur avec des modifications. J'ai supposé qu'il y avait un tas de javascript faisant tout cela pour moi. Maintenant, je pense que j'avais tout faux. Au lieu de cela il semble que le Viewstate ne change jamais du côté client, et toutes les modifications du client sont dans les données de publication de sorte que la prochaine demande le serveur charge viewstate, charge la publication et fournit un nouveau viewstate mis à jour dans la réponse suivante?
j'ai obtenu par seulement 10% environ du lien « Bonus matériel de lecture » et jusqu'à présent, il est vraiment super informations. Merci encore! – AaronLS
J'ai lu cet article Vraiment Comprendre l'article de Viewstate environ 5 fois et je reviens toujours quand je suis confus. :) – Greg