2010-12-09 4 views
0

У меня есть интересная проблема с представлением здесь, что у меня проблемы с глажкой. Конечно, я не специалист по работе с viewstate, это, вероятно, один из самых запутанных течений .NEt, но это нигде здесь нет. Вот ошибка, которую я получаю.Не удалось загрузить viewstate

Не удалось загрузить вид на море. Дерево управления, в которое загружается viewstate, должно соответствовать дереву управления, который использовался для сохранения состояния представления во время предыдущего запроса.

Что странно в том, что это происходит только на домашней странице сайта (код находится в нижнем колонтитуле главной страницы). Каждая другая страница на сайте работает нормально. Вот код aspx. Обратите внимание, что это находится в нижнем колонтитуле главного файла.

<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> 

Я попытался отключить видоискатель на панели, и ошибка все еще происходит. Может ли кто-нибудь сказать мне, что происходит?

Спасибо заранее

+0

У вас есть код в файле CodeBehind? Если да, можете ли вы отправить его. – 2010-12-09 16:47:01

ответ

1

ли динамически создавать какой-либо контроль в вашей домашней странице? Эта ошибка может быть вызвана тем, что вы динамически создаете элементы управления в коде, находящемся на внутренней загрузке, но не выполняются в обратной передаче. Если у вас есть какой-либо элемент управления, который создается динамически, убедитесь, что вы делаете это в методе OnInit,