Como o ViewState é carregado no Head da página, ele pode tornar o carregamento do conteúdo mais lento. Da mesma forma como se faz com os arquivos JavaScript, vamos mover o ViewState para o final da página. Teoricamente os buscadores como Google, Bing e Yahoo só prestam atenção à primeira parte do código HTML, então, teoricamente, isto traria uma ganho de SEO também.
Este é um código que deve ser colocado na MasterPage ou em cada uma das páginas. Se você não tem MasterPage a dica é estender a página.
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter HtmlWriter = new HtmlTextWriter(sw);
base.Render(HtmlWriter);
String html = sw.ToString();
int StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\"");
if (StartPoint != -1)
{
int EndPoint = html.IndexOf("/>", StartPoint) + 2;
String viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint);
html = html.Remove(StartPoint, EndPoint - StartPoint);
int FormEndStart = html.IndexOf("</form>") - 1;
if (FormEndStart != -1)
html = html.Insert(FormEndStart, viewstateInput);
}
writer.Write(html);
}
Este artigo foi baseado no arigo em inglês do Scott Hanselman, que pode ser acessado no link abaixo.
http://www.hanselman.com/blog/MovingViewStateToTheBottomOfThePage.aspx