Hidden Fields sind eine Möglichkeit, Du musst Dir aber bewusst sein, dass sich diese sehr einfach mit Javascript auf Clientseite manipulieren lassen (das ist im
HTML ein einfach <input type="hidden" value="xyz" />, wo Du den Value ganz einfach ändern kannst).
Wenn Dich das nicht stört bzw. ein modifizierter Wert unkritisch ist (dann trotzdem bitte TryParse verwenden damit Du keine
Exception bekommst wenn Du auf einmal 'Wofür mag das Feld hier sein?' in einen Integer wandeln willst
) ist das eine elegante Methode, die kaum Overhead hat. Der ASP.NET Viewstate ist hingegen verschlüsselt und somit vor Manipulation sicher. Macht allerdings die Seite 'dick' und kostet Bandbreite (und dadurch Transferzeit).
Und schlag Dir das mit 'Umstellen' von ASP nach ASP.NET mal aus dem Kopf. Die Konzepte hinter ASP und ASP.NET sind so dermassen unterschiedlich, dass Du null komma nothing wiederverwenden kannst. Mal allein von den Unterschieden zwischen VB Script und VB.NET abgesehen.
Dass Du noch nicht viel mit C# gemacht hast spricht eher für Prism *fg*, aber Du wirst einfach viel mehr Infos zu Deinen Problemen in C# finden (Codeplex, CodeProject.com, Blogs, hier etc.), dass das den Nachteil der Sprachkenntnis bald aufwiegt. Und ich wage einfach zu behaupten, dass Du in C# weniger Code brauchst und der um längen lesbarer ist als das, was in VB.NET dabei rauskommen würde. Ausser natürlich, Du bist langjähriger VB Entwickler und kannst das ganze unnötige Rauschen im Code (dim, ByVal, Sub etc.) geistig komplett ausblenden und auch in Nullzeit hinschreiben...