Comment corriger Les informations d'état n'est pas valide pour cette page et peut être endommagé.

Je suis en train de travailler sur un Asp.net projet où j'ai créé quelques contrôles de l'utilisateur sur la page dynamiquement par le biais de LoadControl() sur la Page Objet, mais quand j'ai essayer de faire toute publication par le biais de n'importe quelle page je obtenir "The state information is invalid for this page and might be corrupted." même quand j'ai mis Viewstate de contrôle créé dynamiquement à false.

Si vous avez été confronté à ce problème s'il vous plaît dites-moi comment vous avez fixé.

La trace de la pile est:-

[FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters. ]
System.Convert.FromBase64String(String s) +0
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +77
System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +4
System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +37
System.Web.UI.HiddenFieldPageStatePersister.Load() +147
[ViewStateException: Invalid viewstate. 
[HttpException (0x80004005): The state information is invalid for this page and might be corrupted.]
System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +198
System.Web.UI.ViewStateException.ThrowViewStateError(Exception inner, String persistedState) +14
System.Web.UI.HiddenFieldPageStatePersister.Load() +251
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +106
System.Web.UI.Page.LoadAllState() +43
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +8431
System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +253
System.Web.UI.Page.ProcessRequest() +78
System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
System.Web.UI.Page.ProcessRequest(HttpContext context) +49
ASP.contact_us_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\otherland_ecom\33f31476\6c5f9007\App_Web_zgmfrrfa.14.cs:0
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
Sonne comme une sérialisation question - veuillez fournir plus d'informations sur la façon dont vous avez sérialisé vos contrôles de l'état d'affichage.
à quel moment dans le cycle de vie ne vous chargez le contrôle, et sont vous de le charger sur toutes les demandes (et pas seulement !ispostback)?
Le premier lieu de vérifier, compte tenu de l'exception, c'est ce genre de types de sérialisation dans l'état d'affichage sur l'état de la demande (pas de la publication qui lève l'exception). Quelque chose que vous mettez dans le champ caché?

OriginalL'auteur SDL Developer | 2010-08-13