Mridul Raj
Mridul Raj

Reputation: 999

How to disable ViewState for a .aspx page?

I need to completely disable ViewState for a .aspx page inside my web application. I have gone through different blogs and what I understand is that we must set <%@ Page EnableViewState="false" ...%>, but this is not working.

Is this enough to disable ViewState for all the controls inside the page? Or should I make any additional modifications? If so, please specify them. I don't want the ViewState enabled for even a single control inside the .aspx page

Upvotes: 16

Views: 43821

Answers (3)

Johnny
Johnny

Reputation: 303

Disabling View State

  1. Machine Level - Disabling view state at machine level in machine.config, will disable ViewState of all the applications on the web server.
<Machine.config>
   <system.web>
      <pages enableViewState="false" />
   </system.web>
</Machine.config>
  1. Application Level - You can disable ViewState for all pages in /web.config file.
<configuration>
   <system.web>
      <pages enableViewState="false" />
   </system.web>
</configuration>
  1. Page Level - Disabling view state for a specific aspx file at the top.

<%@ Page Language="C#" .. EnableViewState="false" .. %>

  1. Control Level - You can disable ViewState for a specific control.

<asp:TextBox EnableViewState="false" ID="Name" runat="server"></asp:TextBox>

Upvotes: 18

albattran
albattran

Reputation: 1907

If you truly don't need postback, you can remove the form element from your page, this will remove the viewstate entirely.

Upvotes: 4

Habib
Habib

Reputation: 223257

I think the quotes should be:

EnableViewState="false"

Apart from that, if you are still seeing the hidden fields then they are used by ASP.Net. You may see:

Page.EnableViewState Property

Even if EnableViewState is false, the page might contain a hidden view state field that is used by ASP.NET to detect a postback.

Upvotes: 14

Related Questions