ASP.NET C#-如何在Response.Redirect之后保留值
本文关键字:Redirect 之后 保留 Response NET C#- ASP | 更新日期: 2023-09-27 18:28:33
我在ASP.NET c#应用程序中工作。我遇到了一个需要在响应后保留一些值的部分。在不使用额外的QueryString或Session的情况下重定向到同一页面,因为Session或多或少可能会给服务器的性能带来负担,即使只是一个很小的值。
下面是我的代码片段:
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
string id = ddl.SelectedValue;
string id2 = ddl2.SelectedValue;
Response.Redirect("http://sharepoint2007/sites/home/Lists/CustomList/DispForm.aspx?ID=" + id);
}
我想在Response.RRedirect之后保留值id2,我尝试过ViewState,但在重定向之后,它似乎将页面视为新页面,ViewState值消失了。
更新:
我在重定向后保留值的意图是想绑定回dropdownlist选择的值。
请帮忙。
提前谢谢。
使用cookie就可以了:
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
string id = ddl.SelectedValue;
string id2 = ddl2.SelectedValue;
HttpCookie cookie = new HttpCookie("SecondId", id2);
Response.Cookies.Add(cookie);
Response.Redirect("http://sharepoint2007/sites/home/Lists/CustomList/DispForm.aspx?ID=" + id);
}
protected void OnLoad(object sender, EventArgs e)
{
string id2 = Request.Cookies["SecondId"];
//send a cookie with an expiration date in the past so the browser deletes the other one
//you don't want the cookie appearing multiple times on your server
HttpCookie clearCookie = new HttpCookie("SecondId", null);
clearCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(clearCookie);
}
使用Session变量即可进行
代码
Session["id2"] = ddl2.SelectedValue;
当你从一个页面重定向到另一个页面时,视图状态对你没有帮助,会话变量可以存储值,直到用户注销网站或会话结束,当你自动返回到你的页面时,viewstate是有用的
或
如果可能的话,您可以将id2变量附加到querystring中,就像您对id1变量
除了会话、查询字符串,您还可以使用cookie、应用程序变量和数据库来持久化数据。
您可以使用Session或QueryString来实现它
通过会话
在你的第一页:
Session["abc"] = ddlitem;
然后在您的下一页访问会话使用:
protected void Page_Load(object sender, EventArgs e)
{
String cart= String.Empty;
if(!String.IsNullOrEmpty(Session["abc"].ToString()))
{
xyz= Session["abc"].ToString();
// do Something();
}
else
{
// do Something();
}
}
-
通过QueryString
在你的第一页:
private void button1_Click(object sender, EventArgs e)
{
String abc= "ddlitem";
Response.Redirect("Checkout.aspx?ddlitemonnextpage" + abc)
}
在您的第二页:
protected void Page_Load(object sender, EventArgs e)
{
string xyz= Request.QueryString["ddlitemonnextpage"].ToString();
// do Something();
}