Quelqu'un peut-il expliquer la différence entre ViewState et Session? Plus précisément, j'aimerais savoir quel est le meilleur moyen de garder un objet disponible (en réglant en permanence les membres par des publications) tout au long du cycle de vie de ma page.ViewState Vs Session ... maintien de l'objet à travers le cycle de vie de la page
Actuellement, j'utilise Sessions pour cela, mais je ne suis pas sûr que ce soit la meilleure solution.
Par exemple:
SearchObject searchObject;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
searchObject = new SearchObject();
Session["searchObject"] = searchObject;
}
else
{
searchObject = (SearchObject)Session["searchObject"];
}
}
qui me permet d'utiliser mon searchObject nulle part ailleurs sur ma page, mais il est un peu lourd que je dois remettre ma session var si je change les propriétés, etc.
Je pense qu'il doit y avoir une meilleure façon de faire cela pour que .NET ne réinstancie pas l'objet chaque fois que la page se charge, mais le place également dans la portée globale de la classe Page.
En plus des réponses ci-dessous, 'ViewState' exige que les éléments stockés soient sérialisables . Sinon, vous recevrez des exceptions de sérialisation. –