Si hallas algún problema con tu código o trabajo, recuerda probar siempre en un entorno de testing antes subir el código al trabajo final.
Solución:
Aquí hay un decodificador ViewState en línea:
http://ignatu.co.uk/ViewStateDecoder.aspx
Editar: Desafortunadamente, el enlace anterior está muerto; aquí hay otro decodificador ViewState (de los comentarios):
http://viewstatedecoder.azurewebsites.net/
Use Fiddler y tome el estado de vista en la respuesta y péguelo en el cuadro de texto inferior izquierdo y luego decodifique.
Aquí está el código fuente para un visualizador ViewState del artículo de Scott Mitchell sobre ViewState (25 páginas)
using System;
using System.Collections;
using System.Text;
using System.IO;
using System.Web.UI;
namespace ViewStateArticle.ExtendedPageClasses
///
/// Parses the view state, constructing a viaully-accessible object graph.
///
public class ViewStateParser
// private member variables
private TextWriter tw;
private string indentString = " ";
#region Constructor
///
/// Creates a new ViewStateParser instance, specifying the TextWriter to emit the output to.
///
public ViewStateParser(TextWriter writer)
tw = writer;
#endregion
#region Methods
#region ParseViewStateGraph Methods
///
/// Emits a readable version of the view state to the TextWriter passed into the object's constructor.
///
/// The view state object to start parsing at.
public virtual void ParseViewStateGraph(object viewState)
ParseViewStateGraph(viewState, 0, string.Empty);
///
/// Emits a readable version of the view state to the TextWriter passed into the object's constructor.
///
/// A base-64 encoded representation of the view state to parse.
public virtual void ParseViewStateGraph(string viewStateAsString)
// First, deserialize the string into a Triplet
LosFormatter los = new LosFormatter();
object viewState = los.Deserialize(viewStateAsString);
ParseViewStateGraph(viewState, 0, string.Empty);
///
/// Recursively parses the view state.
///
/// The current view state node.
/// The "depth" of the view state tree.
/// A label to display in the emitted output next to the current node.
protected virtual void ParseViewStateGraph(object node, int depth, string label)
#endregion
///
/// Returns a string containing the property value a specified number of times.
///
/// The number of times to repeat the property.
/// A string containing the property value a specified number of times.
protected virtual string Indent(int depth)
StringBuilder sb = new StringBuilder(IndentString.Length * depth);
for (int i = 0; i < depth; i++)
sb.Append(IndentString);
return sb.ToString();
#endregion
#region Properties
///
/// Specifies the indentation to use for each level when displaying the object graph.
///
/// A string value; the default is three blank spaces.
public string IndentString
get
return indentString;
set
indentString = value;
#endregion
Y aquí hay una página simple para leer el estado de vista de un cuadro de texto y graficarlo usando el código anterior
private void btnParse_Click(object sender, System.EventArgs e)
// parse the viewState
StringWriter writer = new StringWriter();
ViewStateParser p = new ViewStateParser(writer);
p.ParseViewStateGraph(txtViewState.Text);
ltlViewState.Text = writer.ToString();
Puedes añadir valor a nuestra información tributando tu experiencia en las reseñas.