2012-03-26 9 views
1

でエラーが発生します。ネットページをajax経由でdivタグに追加します。ビューステートは、私が他のASPをロードするために、いくつかのjqueryのコードを長谷asp.netページを持っているjQueryとasp.net(ビューステート)</p> <p>に問題を持っている私のjqueryのもの

は今毎回私はエラーを取得:

The state information is invalid for this page and might be corrupted.

問題は、私は、エラー、誰でもいくつかのヒントを見つけることができないということ、ありますか?ここ

は、AJAX呼び出しです:

function ajax_table() { 
      $.get('url', function (data) { 
       $('#table11').html(data); 
      }); 
     } 

と、URL内のasp.netファイルのコード:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Querys.aspx.cs" Inherits="web.Querys" %> 
<asp:MultiView ID="MultiView1" runat="server"> 
    <asp:View ID="View1" runat="server"><asp:Literal ID="Aus" runat="server"></asp:Literal></asp:View> 
    <asp:View ID="View2" runat="server"> 

     <form id="form1" runat="server" enableviewstate="false"> 
      <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
          GridLines="None" Font-Size="8pt" Font-Names="Verdana" > 
          <AlternatingRowStyle BackColor="White" /> 
          <EditRowStyle BackColor="#2461BF" /> 
          <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
          <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
          <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
          <RowStyle BackColor="#EFF3FB" /> 
          <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
          <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
          <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
          <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
          <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
         </asp:GridView> 
     </form> 

    </asp:View> 
</asp:MultiView> 
+0

ここでtable1は?もう1つは、実際のページを使ってDOMを見て、あなたがその上で何をするかで解決することはできません。おそらくDOMをいくつか変更しますが、ブラウザツールを使用してそれを調べて変更理由を確認できるのはあなただけです。 – Aristos

答えて

2

私はあなたが持っている問題は、あなたのAJAXの結果であると考えていますASP.Netアーキテクチャの「ルールを破る」バインディングWebFormページは、通常、1つのフォームと1つのViewStateを持つように設計されています。 2番目のページをAJAX経由で呼び出してメインページにバインドすると、2番目の(埋め込み)フォームがViewStateと共にDOMに追加されます。これにより、使用するViewStateについて混乱するポストバックイベントが発生する可能性があります。

我々はこのラウンドを取得する方法は、私たちに実際のコンテンツの周りのdivコンテナを追加することであるバインドする(ただし、それを含まないので、formタグ内になければならない):で続い

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Querys.aspx.cs" Inherits="web.Querys" %> 
<form id="form1" runat="server" enableviewstate="false"> 
    <div id="ajaxContent"> <!-- this div --> 
     <asp:MultiView ID="MultiView1" runat="server"> 
      <asp:View ID="View1" runat="server"><asp:Literal ID="Aus" runat="server"></asp:Literal></asp:View> 
      <asp:View ID="View2" runat="server"> 
       <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
        GridLines="None" Font-Size="8pt" Font-Names="Verdana" > 
        <AlternatingRowStyle BackColor="White" /> 
        <EditRowStyle BackColor="#2461BF" /> 
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
        <RowStyle BackColor="#EFF3FB" /> 
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
        <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
        <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
        <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
        <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
       </asp:GridView> 
      </asp:View> 
     </asp:MultiView> 
    </div> 
</form> 

AJAX呼び出しが、これだけのdivの内容が含まれています

function ajax_table() { 
    $.get('url', function (data) { 
     $('#table11').html($(data).find('#ajaxContent').html()); 
    }); 
} 

あなたが実際に埋め込まれたページ(ビュー、リテラルとGridViewコントロール)、あなたとASP.NetのAjaxを使ったほうが良いですのViewStateを維持する必要がある場合UpdatePanelsなど。

希望に役立ちます。

関連する問題