¿Puede alguien explicar la diferencia entre ViewState y Session?ViewState Vs Session ... mantenimiento del objeto a través del ciclo de vida de la página
Más específicamente, me gustaría saber la mejor manera de mantener un objeto disponible (estableciendo continuamente miembros a través de devoluciones) a lo largo del ciclo de vida de mi página.
Actualmente uso Sesiones para hacer esto, pero no estoy seguro si es la mejor manera.
Por ejemplo:
SearchObject searchObject;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
searchObject = new SearchObject();
Session["searchObject"] = searchObject;
}
else
{
searchObject = (SearchObject)Session["searchObject"];
}
}
que me permite usar mi searchObject en otro sitio en mi página, pero es una especie de engorroso ya que tengo que reiniciar mi sesión var si cambio de propiedades, etc.
Estoy pensando que debe haber una mejor manera de hacerlo para que .NET no vuelva a crear instancias del objeto cada vez que se cargue la página, sino que también lo ubique en el ámbito global de la clase de página.
Además de las respuestas a continuación, 'ViewState' requiere que los elementos almacenados sean serializables . De lo contrario, recibirás excepciones de serialización. –