1

クロスページ ポストバック (または同様の方法、おそらく Server.Transfer) を使用して、フォーム データ (データセット A など) をページにポストし、ユーザーが追加情報 (データなど) を追加できるようにすることは可能ですか? -set B) を元のページにポストバックし、データの完全なセット (A+B) を元のページにポストバックします。これは、元のページですべてのデータ A+B が送信された場合と同様に、通常のイベント実行プロセスを流れます。通常のポストバック?

2 番目のページに元のページの型情報を持たせたくありません。2 つの追加フィードを提供してデータを送信するだけで済みます。このようにして、さまざまなページとコントロールがこのメソッドを使用して追加データを取得できます。

例えば:

ページ 1 には、さまざまなテキスト入力を含むフォームと、空の 2 つの非表示フィールド Hidden1 + Hidden2 を含めることができます。

ページ 1 のフォームが送信されると、ユーザーにページ 2 が表示され、ユーザーはそのページを完了すると、ページ 1 のすべてのフォーム データがページ 1 に戻されますが、隠しフィールド 1 + 2 は完了しています。ページ 1 には、完了するために必要なすべての情報が含まれています。

おそらく、ページ2はPreviousPageを使用してその投稿データを取得し、それに追加してからページ1に投稿する必要があるだけだと考えていますが、ページ2ではなくページ1から来たかのように.しかし、よくわかりませんこれが可能で、ASP.NET がこれを改ざんされたデータとして読み取る可能性がある場合は?

これはこの「質問」に似ていますが、その例では、各ページは前のページに固有です。

特に明確でない場合は、これを言い換えてください...

4

1 に答える 1

0

最初に、情報を保持するクラスを作成し、ページからページへと移動してデータを入力します。

すべてのページで、このクラス (変数) への参照があり、そのイーサは新しいイーサを作成し、前のページからそれを取得します。ViewStateに保存します

Page1 -> Page2 から。

に設定して Page1 から送信します。

PostBackUrl="Page2.aspx"

page2.aspx で、情報を取得できる場所を設定します

<%@ PreviousPageType VirtualPath="~/Page1.aspx" %>

そして、あなたはそれらを手に入れます...

if (Page.PreviousPage != null)
{
    if(Page.PreviousPage.IsCrossPagePostBack == true)
    {
        GetTheClass = PreviousPage.MyDataClass;
    }
}

もう 1 つの手動の方法は、クラスをシリアル化して、post 経由で xml として送信し、次のページでデコードすることです。

于 2010-09-17T15:02:53.033 に答える