If I have a simple piece of data to store (an integer or string for example) I might choose to store that in ViewState, or using a HiddenField control.
Why would I choose one over the other?
ViewState
- Hard for the user to decode (thought not impossible), which might be desirable
HiddenField
- Value can be used in JavaScript
Are there other pros and cons?
Not really, ViewState is actually stored in a hidden field so the only real difference is the encoding.
Unless you need to manipulate the value with JavaScript or you hope to turn off ViewState on this page altogether then I’d use ViewState. Mostly just because there are third party tools (like this one) which understand ViewState and which won’t understand your custom hidden field.