2012-04-03 16 views
0

私は自分のコードで何か本当に悪いことをしています。私は、実際のページに投稿されたすべてのデータを取得し、HTML入力に入れている:Request.Formを送信する方法

private void GetPostedForm() 
{ 
    System.Text.StringBuilder displayValues = new System.Text.StringBuilder(); 
    System.Collections.Specialized.NameValueCollection postedValues = Request.Form; 

    for (int i = 0; i < postedValues.AllKeys.Length; i++) 
    { 
     String nextKey = postedValues.AllKeys[i]; 
     if (nextKey.Substring(0, 2) != "__") 
     { 
      displayValues.Append("<input type='hidden' name='" + nextKey + "' value='" + postedValues[i] + "'/>"); 
     } 
    } 
    hiddensPost.InnerHtml = displayValues.ToString(); 
} 

しかし、このページのHTML入力は、私には役に立ちません。私は2つの古いページの間にページを置いています( "A"が "B"に送られたフォーム)。今私は "A"を "X"に送ってから "B"に送る必要があります。

質問は次のとおりです。リクエストされたフォームをHTMLでこのようなことをせずに次のページに送信するにはどうすればよいですか?

+0

すべてのことをしている瞬間から、私はあなた自身でそれを行うことを知っていると確信しています。そして、なぜあなたはスタックしていたのですか?単純な入力htmlへのレンダリングは、値を渡す瞬間から悪くはありません。ここで唯一考えるのは、それらをレンダリングする場所であり、それらの値をHtmlEncodeすることを忘れています – Aristos

+0

私はそれを としてタイプします。StringBuilder displayValues = new StringBuilder(); がため(INT i = 0; I " \t \t \t \t HttpContext.Current.Request.Form.Keys [i]は、\t \t \t \t \t HttpContext.Current.Server.HtmlEncode(HttpContext.Current.Request.Form [I] .ToString()) \t \t \t); \t} } //私はそれを置きます。 txtOnMe.Text = displayValues.ToString(): – Aristos

答えて

1

別のASP-パネル(pnlA、pnlX、pnlB)に、

をあなたのステップ(A、X、B)を置くことができ、それは目に見える入力ですその後、単にあなたがViewStateをwant.theた状態で、パネルの表示を切り替えますあなたのためにそれを行います(店舗コントロールが入力で再び投稿するフォーム内の1つの隠れ場に述べている)

ので、あなたは、ユーザーが投稿することが1つのHTMLフォーム(有名なのasp.netフォーム)

でデータを3回入力します

別の解決策はhere、asp.netウィザードコントロール

1

可能であれば、メソッドをGETに変更し、QueryStringをページ間で渡します。

関連する問題