2010-12-09 25 views
0

Ich habe hier ein interessantes Viewstate-Problem, das Probleme beim Ausbügeln hat. Zugegeben, ich bin kein Experte im Umgang mit dem Viewstate, es ist wahrscheinlich eines der verwirrendsten Dinge über .NEt, aber das ist weder hier noch dort. Hier ist der Fehler, den ich bekomme.Fehler beim Laden von Viewstate

Ladezustand konnte nicht geladen werden. Der Kontrollbaum, in den der Viewstate geladen wird, muss mit dem Kontrollbaum übereinstimmen, der beim Speichern der Viewstate während der vorherigen Anfrage verwendet wurde.

Was ist seltsam daran ist, dass es nur auf der Homepage der Website passiert (Code befindet sich in Fußzeile der Masterseite). Jede andere Seite auf der Website funktioniert gut. Hier ist der ASPX-Code. Beachten Sie, dass sich dies in der Fußzeile der Master-Datei befindet.

<asp:UpdatePanel ID="upEmail" runat="server" > 
    <ContentTemplate> 
    <asp:MultiView ID="mview" runat="Server" ActiveViewIndex="0"> 

     <asp:View ID="viewInput" runat="Server"> 
     <div> 
      <asp:Panel ID="pnlEmail" runat="server" DefaultButton="btnSubscribe" Width="100%" EnableViewState="False"> 
      <asp:TextBox ID="tbEmail" runat="server" Width="125px" CssClass="someClass" title="Enter Your Email Address" /> 
      <ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender1" TargetControlID="tbEmail" WatermarkText="Email Address" runat="server" /> 
      <asp:RequiredFieldValidator ID="rfEmail" runat="Server" ControlToValidate="tbEmail" ValidationGroup="submit">*</asp:RequiredFieldValidator> 
      <asp:ImageButton ID="btnSubscribe" ImageUrl="/Images/social/signup.gif" Imagealign="absmiddle" runat="server" OnClick="BtnSubscribe_Clicked" ValidationGroup="submit" /> 
      <br /> 
      <asp:RegularExpressionValidator ID="regEmail" runat="server" ControlToValidate="tbEmail" ErrorMessage="Please enter a valid email." ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="submit" Display="dynamic" ForeColor="" CssClass="error_font_no_hover" /> 
      </asp:Panel> 
     </div> 
     <div> 
      <asp:Label ID="lblMessage" runat="server" Visible="false" /> 
     </div> 
     </asp:View> 

     <asp:View ID="viewSuccess" runat="server"> 
     Thank You! You will now 
     <br /> 
     receive e-mails! 
     </asp:View> 

    </asp:MultiView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Ich habe versucht, das Viewstate auf dem Panel zu deaktivieren, und der Fehler tritt immer noch auf. Kann mir jemand sagen, was vor sich geht?

Vielen Dank im Voraus

+0

Haben Sie einen Code in der Codebehind-Datei? Wenn Sie das tun, können Sie es bitte posten. –

+0

Fügen Sie Steuerelemente im Code dynamisch hinzu? –

+1

Ändern Sie die Steuerelementauflistung in beliebigen Seitenereignissen (Page_Load vielleicht), d. H. Hinzufügen oder Entfernen von Steuerelementen auf dieser Seite? – jball

Antwort

1

Haben Sie dynamisch jede Kontrolle in Ihre Homepage erstellen? Dieser Fehler liegt möglicherweise daran, dass Sie Steuerelemente dynamisch im Code erstellen, der sich auf die Anfangslast bezieht, aber nicht im Postback. Wenn Sie ein Steuerelement haben, das dynamisch erstellt wird, stellen Sie sicher, dass Sie dies in der OnInit-Methode tun.

Verwandte Themen