jeudi 1 avril 2010

Asp.net 3.5 - Server Transfer et StackOverFlow

Aujourd’hui quelque chose d’un peu plus light que les derniers articles : les boucles infinies liées au Server.Transfert.
En effet, si l’on utilise Server.Transfer dans un Event de type Click(et que l'on transfère l'event click), alors  on obtient une StackOverFlow. (L'event click, appel un transfert qui appel un click qui....)

Le petit code suivant permet de l’éviter.
        if (IsPostBack)
        {
            if (Context.Items["Transferred"] == null)
            {
                // Initialize to prevent stackover
                Context.Items["Transferred"] = new object();
                // TransferToSelf
                Server.Transfer("Webform1.aspx", true);
            }
        }

Aucun commentaire:

Enregistrer un commentaire