*此次的程序主要解决了页面之间接收和传递多个参数的问题。
思路:以XML配置化的思想编写此DEMO的。
主要对项目中参数接收和传递做到可配置化,宜维护。。.
文字流程图:1.A页面Response.Write一个Form到B页面;
2.B页面接收之后,B页面中有"下一步按钮",Press Button之后,提交从A Page接收到C Page.
A Page:-----Default.aspx
B.Page------WebForm1.aspx
C.Page------WebForm2.aspx
CommonClass -----ParamClass
PageBaseClass-----BaseIPage
XML-----ParamDictionary.xml
以下是代码,供参考
ParamDictionary.xml
<ParamsDictionary>
<Param key="orderid" value=""/>
<Param key="FAV_FID1" value=""/>
<Param key="FAV_Status1" value=""/>
<Param key="FAV_NeedCheck1" value=""/>
<Param key="FAV_FID2" value=""/>
<Param key="FAV_Status2" value=""/>
<Param key="FAV_NeedCheck2" value=""/>
<Param key="FAV_CheckLine" value=""/>
<Param key="FlightWay" value=""/>
<Param key="HomeCity" value=""/>
<Param key="DestCity1" value=""/>
<Param key="DDatePeriod1" value=""/>
<Param key="startPeriod" value=""/>
<Param key="DestCity2" value=""/>
<Param key="startPeriod2" value=""/>
<Param key="ADatePeriod1" value=""/>
<Param key="TicketAgency_List" value=""/>
<Param key="ChildType" value=""/>
<Param key="Quantity" value=""/>
<Param key="DSeatClass" value=""/>
<Param key="AirlineChoice" value=""/>
<Param key="EMoneyIDList" value=""/>
<Param key="GetNeedGuarantee" value=""/>
<Param key="IsSubmitTempOrder" value=""/>
<Param key="NoSignupLogin" value=""/>
</ParamsDictionary>
public partial class _Default : System.Web.UI.Page
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
protected void Page_Load(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//Test Data
string responseString =
"<Form id=\"frmTemp\" action=\"WebForm1.aspx\" method=\"post\">" +
"<input type=\"hidden\" name=\"orderid\" value=\"1111\">" +
"<input type=\"hidden\" name=\"FAV_FID1\" value=\"2222\">" +
"<input type=\"hidden\" name=\"FAV_Status1\" value=\"3333\">" +
"<input type=\"hidden\" name=\"FAV_NeedCheck1\" value=\"4444\">" +
"<input type=\"hidden\" name=\"FAV_FID2\" value=\"5555\">" +
"<input type=\"hidden\" name=\"FAV_Status2\" value=\"6666\">" +
"<input type=\"hidden\" name=\"FAV_NeedCheck2\" value=\"7777\">" +
"<input type=\"hidden\" name=\"FAV_CheckLine\" value=\"8888\">" +
"<input type=\"hidden\" name=\"FlightWay\" value=\"9999\">" +
"<input type=\"hidden\" name=\"HomeCity\" value=\"aaaa\">" +
"<input type=\"hidden\" name=\"DestCity1\" value=\"bbbbb\">" +
"<input type=\"hidden\" name=\"DDatePeriod1\" value=\"ccccc\">" +
"<input type=\"hidden\" name=\"startPeriod\" value=\"eeee\">" +
"<input type=\"hidden\" name=\"DestCity2\" value=\"ffff\">" +
"<input type=\"hidden\" name=\"startPeriod2\" value=\"ggggg\">" +
"<input type=\"hidden\" name=\"ADatePeriod1\" value=\"qqqq\">" +
"<input type=\"hidden\" name=\"TicketAgency_List\" value=\"wwwww\">" +
"<input type=\"hidden\" name=\"ChildType\" value=\"eeeee\">" +
"<input type=\"hidden\" name=\"Quantity\" value=\"iiiiii\">" +
"<input type=\"hidden\" name=\"DSeatClass\" value=\"jjjjj\">" +
"<input type=\"hidden\" name=\"AirlineChoice\" value=\"ppppp\">" +
"<input type=\"hidden\" name=\"EMoneyIDList\" value=\"vvvvv\">" +
"<input type=\"hidden\" name=\"GetNeedGuarantee\" value=\"xxxxxx\">" +
"<input type=\"hidden\" name=\"IsSubmitTempOrder\" value=\"sssss\">" +
"<input type=\"hidden\" name=\"NoSignupLogin\" value=\"llllll\">" +
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
"</form><script language=\"javascript\">document.getElementById(\"frmTemp\").submit();</script>";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Response.Write(responseString);
}
}
public partial class WebForm1 : BaseIPage
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
private ParamClass paramClass = new ParamClass();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private BaseIPage basePage = new BaseIPage();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
NameValueCollection _hiddenVariables = new NameValueCollection();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//Check RequestForm
if (paramClass.CheckFormIsNull(Request.Form) == true)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//从RequestForm中取值,并存放到Dictionary
Dictionary<String, String> paramsDictionary = paramClass.SaveParamsToDictionary(Request.Form, basePage.XMLPath);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//输出hidden到Page
paramClass.WriteHiddenField(paramClass.ParseTempString(paramsDictionary, _hiddenVariables), Page.ClientScript);
}
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
protected void Button1_Click(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//Check RequestForm
if (paramClass.CheckFormIsNull(Request.Form) == true)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//从RequestForm中取值,并存放到Dictionary
Dictionary<String, String> paramsDictionary = paramClass.SaveParamsToDictionary(Request.Form, basePage.XMLPath);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//跳转下一页,并传递参数
//string url = "http://" + ViewState["ServerName"].ToString() + "/Domestic/ConfirmOrder.aspx";
Response.Write(paramClass.ParseTempString(paramsDictionary, "WebForm2.aspx"));
}
}
}
public partial class WebForm2 : BaseIPage
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
private ParamClass paramClass = new ParamClass();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private BaseIPage basePage = new BaseIPage();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
NameValueCollection _hiddenVariables = new NameValueCollection();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//Check RequestForm
if (paramClass.CheckFormIsNull(Request.Form) == true)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//从RequestForm中取值,并存放到Dictionary
Dictionary<String, String> paramsDictionary = paramClass.SaveParamsToDictionary(Request.Form, basePage.XMLPath);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//输出hidden到Page
paramClass.WriteHiddenField(paramClass.ParseTempString(paramsDictionary, _hiddenVariables), Page.ClientScript);
}
}
}
public class ParamClass
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
CheckFormIsNull#region CheckFormIsNull
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 检查RequestForm是否为空和count>0
/// </summary>
/// <param name="requestForm"></param>
/// <returns></returns>
public bool CheckFormIsNull(NameValueCollection requestForm)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return (null != requestForm && requestForm.Count > 0);
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
#endregion
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
SaveParamsToDictionary#region SaveParamsToDictionary
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 把Request.Form中的内容存储到Dictionary
/// </summary>
/// <param name="nameValueCollection">Request.Form</param>
/// <returns></returns>
public Dictionary<String, String> SaveParamsToDictionary(NameValueCollection nameValueCollection, string path)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//把Request.Form中的值全部取出
string requestForm = Convert.ToString((nameValueCollection));
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Dictionary<String, String> pageParameter = new Dictionary<String, String>();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if (!String.IsNullOrEmpty(requestForm) == true)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
ParamDictionary(pageParameter, path);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string[] parameters = requestForm.Split('&');
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
foreach (string parameter in parameters)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
string[] param = parameter.Split('=');
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if (pageParameter.ContainsKey(param[0]))
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
pageParameter[param[0]] = param[1];
}
}
}
return pageParameter;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
#endregion
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
ParamDictionary#region ParamDictionary
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 接收的参数名字列表
/// </summary>
public void ParamDictionary(Dictionary<String, String> pageParameter, string path)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
第一写法:用Xml#region 第一写法:用Xml
XmlDocument xmlDoc = new XmlDocument();
XmlTextReader xmlTextReader = new XmlTextReader(path);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xmlDoc.Load(xmlTextReader);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
foreach (XmlNode children in xmlDoc.ChildNodes)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
foreach (XmlNode child in children)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
pageParameter.Add(child.Attributes["key"].Value, child.Attributes["value"].Value);
}
}
#endregion
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
第二写法#region 第二写法
//pageParameter.Add("orderid", String.Empty);
//pageParameter.Add("FAV_FID1", String.Empty);
//pageParameter.Add("FAV_Status1", String.Empty);
//pageParameter.Add("FAV_NeedCheck1", String.Empty);
//pageParameter.Add("FAV_FID2", String.Empty);
//pageParameter.Add("FAV_Status2", String.Empty);
//pageParameter.Add("FAV_NeedCheck2", String.Empty);
//pageParameter.Add("FAV_CheckLine", String.Empty);
//pageParameter.Add("FlightWay", String.Empty);
//pageParameter.Add("HomeCity", String.Empty);
//pageParameter.Add("DestCity1", String.Empty);
//pageParameter.Add("DDatePeriod1", String.Empty);
//pageParameter.Add("startPeriod", String.Empty);
//pageParameter.Add("DestCity2", String.Empty);
//pageParameter.Add("startPeriod2", String.Empty);
//pageParameter.Add("ADatePeriod1", String.Empty);
//pageParameter.Add("TicketAgency_List", String.Empty);
//pageParameter.Add("ChildType", String.Empty);
//pageParameter.Add("Quantity", String.Empty);
//pageParameter.Add("DSeatClass", String.Empty);
//pageParameter.Add("AirlineChoice", String.Empty);
//pageParameter.Add("EMoneyIDList", String.Empty);
//pageParameter.Add("GetNeedGuarantee", String.Empty);
//pageParameter.Add("IsSubmitTempOrder", String.Empty);
//pageParameter.Add("NoSignupLogin", String.Empty);
#endregion
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
#endregion
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
ParseTempString#region ParseTempString
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 拼凑一个临时跳转Form
/// </summary>
/// <param name="paramsDictionary"></param>
/// <param name="url"></param>
/// <returns></returns>
public string ParseTempString(Dictionary<String, String> paramsDictionary, string url)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("<html><body><form id=\"frmCreditCardTemp\" action=\"" + url + "\" method=\"post\">");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
foreach (string key in paramsDictionary.Keys)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
stringBuilder.Append("<input type=\"hidden\" name=\"" + key + "\" value=\"" + paramsDictionary[key].ToString() + "\">");
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
stringBuilder.Append("</form><script language=\"javascript\">document.getElementById(\"frmCreditCardTemp\").submit();</script></body></html>");
return stringBuilder.ToString();
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 拼凑一个一个Hidden,输出到页面中
/// </summary>
/// <param name="paramsDictionary">参数列表</param>
/// <param name="hiddenParams"></param>
/// <returns></returns>
public NameValueCollection ParseTempString(Dictionary<String, String> paramsDictionary, NameValueCollection hiddenParams)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
foreach (string key in paramsDictionary.Keys)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
hiddenParams.Add(key, paramsDictionary[key]);
}
return hiddenParams;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
#endregion
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
WriteHiddenField#region WriteHiddenField
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 以hidden Field的形式输出到页面
/// </summary>
public void WriteHiddenField(NameValueCollection hiddenVar, ClientScriptManager sm)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
for (int i = 0; i < hiddenVar.Count; i++)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
sm.RegisterHiddenField(hiddenVar.GetKey(i), hiddenVar[i]);
}
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
#endregion
}
public class BaseIPage : System.Web.UI.Page
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// XmlPath
/// </summary>
public String XMLPath
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return Server.MapPath("~/ParamDictionary.xml");
}
}
}