I'm doing something really bad with my code. I'm getting all data posted to the actual page and putting into html inputs:
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();
}
But the html inputs in this page are useless to me. I'm putting a page between 2 older pages ("A" sent form to "B"). Now I need to send "A" to "X" and then send to "B".
The question is: How can I put the requested form into the actual form to send to the next page without doing all this mess in HTML?
for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++)
{
if (HttpContext.Current.Request.Form.Keys[i].Substring( 0, 2 ) != "__")
{
displayValues.AppendFormat(""
HttpContext.Current.Request.Form.Keys[i],
HttpContext.Current.Server.HtmlEncode(HttpContext.Current.Request.Form[i].ToString())
);
}
}
// on a litera I will place that. txtOnMe.Text = displayValues.ToString() - Aristos 2012-04-03 20:39
You can put your steps(A,X,B) and it's visible inputs, into separate asp-panels(pnlA,pnlX,pnlB)
then simply toggle panels visibility in which state you want.the ViewState will do it for you (store controls states into one hidden field within the form to post again with inputs)
so you may post user entered data 3 times with one html form( the famous asp.net form)
another solution is here , the asp.net wizard control
If you can, just change the method to GET
and pass the QueryString along from page to page.