我想在Asp.net中填写Listview,其中包含应该链接到其他页面的记录。因此,当用户点击一条记录时,它们将重定向到与该记录相关的新页面。我有许多参数要保留。
在页面重定向中,是否有其他方式 传递参数 除了“ QueryString
“?
答案 0 :(得分:1)
您可以使用 Cookies
<强> SET :
强>
HttpCookie cookieName = new HttpCookie("Name");
cookieName.Value = "SarahN";
<强> GET :
强>
string name = Request.Cookies["Name"].Value;
或您可以使用
<强> Application Variables
强>
<强> SET :
强>
Application["Name"] = "SarahN";
<强> GET :
强>
string Name = Application["Name"].ToString();
或您可以使用Context
对象
通过上下文对象传递值是另一种广泛使用的方法。
<强> MyForm1.aspx.cs
强>
TextBox1.Text = this.Context.Items["Parameter"].ToString();
<强> MyForm2.aspx.cs
强>
this.Context.Items["Parameter"] = TextBox1.Text;
Server.Transfer("MyForm2.aspx", true);
来自MSDN
上下文
Context对象保存单个用户的数据 请求,它仅在请求期间保持不变。该 上下文容器可以容纳大量数据,但通常是这样 用于保存小块数据,因为它经常被实现 通过global.asax中的处理程序的每个请求。上下文 容器(可从Page对象访问或使用 System.Web.HttpContext.Current)用于保存需要的值 在不同的HttpModules和HttpHandler之间传递。它可以 也用于保存与整体相关的信息 请求。例如,IBuySpy门户网站填充了一些配置 在Application_BeginRequest期间将信息放入此容器中 global.asax中的事件处理程序。请注意,这仅适用于 当前的要求;如果你需要一些仍然存在的东西 对于下一个请求,请考虑使用ViewState。设置和获取 Context集合中的数据使用与您相同的语法 已经看到其他集合对象,如应用程序, 会话和缓存。这里显示了两个简单的例子:
// Add item to
Context Context.Items["myKey"] = myValue;
// Read an item from the
Context Response.Write(Context["myKey"]);
您也可以参考: