Вы говорите, что хотите сохранить данные в скрытом состоянии клиента. ViewState делает именно это: и я думаю, что Microsoft разработала его, чтобы быть компактным. Что заставляет вас думать, что вы можете добиться большего успеха?
ИМХО серебряной пули нет, если вы хотите сохранить состояние на стороне клиента, придерживайтесь ViewState.