Не удалось загрузить viewstate - PullRequest
       14

Не удалось загрузить viewstate

0 голосов
/ 09 декабря 2010

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

Не удалось загрузить 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>

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

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 09 декабря 2010

Скорее всего, вы неправильно поняли дерево управления.Для справки рекомендую совет Скотта Гатри:

http://weblogs.asp.net/alessandro/archive/2008/01/04/failed-to-load-viewstate-typical-problem-with-an-obvious-solution.aspx

1 голос
/ 09 декабря 2010

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

...