Viewstate wird auf der Seite selbst in codierter Form gespeichert. Sie können den Viewstate auf der Client-Seite nicht direkt aufrufen. Sie müssen die Encoding/Decoding-Algorithmen kennen, um die wertvollen Daten aus diesem Viewstate in den clientseitigen Code zu holen.
Sie können versteckte Variablen verwenden, um Daten zu speichern, die nur auf dieser Seite verwendet werden. Versteckte Variablen sind vom clientseitigen und serverseitigen Code aus zugänglich.
Sie können den Cache oder die Sitzung verwenden, um eine Datentabelle (große Daten) zu speichern. Sie werden eine gute Leistung im Vergleich zu ViewState haben.
Der Cache immer Speicher der Maschine verwendet, verwendet die Sitzung, was konfiguriert wurde:
In einer Web-Farm kann die Session lokal sein (was nur dann, wenn Affinität arbeitet gesetzt) oder Remote (State-Server oder Datenbank oder benutzerdefiniert), aber der Cache ist immer lokal.
Wenn Sie also eine DataTable im Cache speichern, wird zwar Speicher belegt, aber die Serialisierung wird nicht verwendet.
PS: das Speichern eines DataSet anstelle einer DataTable ändert fast nichts.
Refer Cache Implementation
Sie schauen besser in den ASP.NET Cache, Sie könnten ihn für Ihre Bedürfnisse geeignet finden. –