我要尝试从一个页面传递到另一个页面的三个变量:两个checboxlist(仅检查值)和一个DateTime。
我正在得到这样的选中项(这只是这些复选框列表之一,称为lstUsers):
string cblvalues = "";
foreach (ListItem cbitem in lstUsers.Items)
{
if (cbitem.Selected)
{
cblvalues += cbitem.Value + "-";
}
}
cblvalues = cblvalues.Trim('-');
Response.Redirect("Results.aspx?cblvalues=" + cblvalues);
如何将另一个复选框列表和DateTime传递给“ Results.aspx”?我已经看到了几个不同的示例,例如Server.Transfer,但不确定哪一个是正确的。
为了在Results.aspx页上使用它们,我是否愿意做:
string cblvalues = Request.QueryString["cblvalues"];
最佳答案
您可以在查询字符串上放置任意多的值。 (尽管查询字符串变得很长,但Web服务器最终会施加限制。)在这里,您只需附加一个键/值对:
Response.Redirect("Results.aspx?cblvalues=" + cblvalues);
只需使用
&
分隔其他键/值对:Response.Redirect("Results.aspx?cblvalues=" + cblvalues + "&moreValue=" + moreValues);
如果确实到了查询字符串变长的地步,并且您基本上有很多数据要传递到下一页,那么您将在寻找其他方法。一种简单的替代方法是将值存储在会话状态中,重定向用户,然后从会话状态中提取值。像这样简单的事情:
Session["cblvalues"] = cblvalues;
Session["moreValues"] = moreValues;
Response.Redirect("Results.aspx");
然后在
Results.aspx
中可以获取值:var cblValues = Session["cblvalues"];
// etc.
如果会话不需要继续携带它们,那么您也可以在获取会话值后清除它们:
Session.Remove("cblvalues");
关于c# - 在页面之间传递多个变量并使用它们,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34769167/