Why does __VIEWSTATE hidden field gets rendered even when I have the EnableViewState set to false

I saw that __VIEWSTATE field gets rendered even though I have set the EnableViewState=”false” at the page level. This field is not rendered if I remove runat=”server” tag for the form element. Can somebody please explain this?


Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

The __VIEWSTATE field is also used to store control state, which is not optional. Furthermore, the information contained in the view state is used to validate the postback, if I’m not mistaken (and validation is enabled, which is the default). So as long as you have the form with runat=”server”, you’ll have a viewstate field. However, you should notice a much smaller field size if you disable all viewstate.

Method 2

In Asp.net, if you need to strip the __VIEWSTATE out entirely, override the Page.Render method, render the page into a string, and strip out the __VIEWSTATE text out of it.

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x