The .NET Framework and ASP.NET have some aspects that sometimes really annoys me. One of these is the infamous __VIEWSTATE used to track the state of all the controls in the page. What is annoying about it is that it’s both a security breach and a performance issue. Also, makes easy things hard.
I wanted to remove it from an app I’m working on, so I started disabling it as suggested by MS. The VIEWSTATE is effectively not used but it stills yields the hidden input field to detect the Postback. This is a nag since this form is performing a GET action and the __VIEWSTATE is passed as part of the QueryString. After some Googling I found a method suggested by Scott Hanselman to move the position of the input field. I just adapted to plainly remove the complete thing as shown below:
protected override void Render(HtmlTextWriter writer)
{
var sw = new StringWriter();
var htmlWriter = new HtmlTextWriter(sw);
base.Render(htmlWriter);
string html = sw.ToString();
int start = html.IndexOf(“ if (start > 0)
{
int end = html.IndexOf(“/>”, start) + 2;
html = html.Remove(start, end – start);
}
writer.Write(html);
}
}
All this code just to get a simple, common, standard query string.