如何发送Request.Form

时间:2012-04-03 19:52:01

标签: c# asp.net

我的代码做得非常糟糕。我将所有数据发布到实际页面并放入html输入:

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输入对我来说毫无用处。我在两个较旧的页面之间放置一个页面(“A”发送表单到“B”)。现在我需要将“A”发送到“X”然后发送到“B”。

问题是:如何将所请求的表单放入实际表单中,以便在不用HTML的所有内容的情况下发送到下一页?

2 个答案:

答案 0 :(得分:1)

您可以将步骤(A,X,B)及其可见输入放入单独的asp-panel(pnlA,pnlX,pnlB)

然后只需切换面板的可见性,在哪种状态下你想要。ViewState会为你做(将控件状态存储到表单中的一个隐藏字段,以便再次发布输入)

因此您可以使用一个html表单(着名的asp.net表单)发布用户输入的数据3次

另一个解决方案是here,asp.net向导控件

答案 1 :(得分:1)

如果可以,只需将方法更改为GET并将QueryString从页面传递到另一页。