我想存储一些数据以在下一页使用它然后我将它插入到数据库中
Trip.TripID
Trip.BookingDate
Trip.Adult
Trip.Chile
并计算出多少次用于此的对象是什么
如果它是一个小尺寸的对象,那么您可以将它存储在会话中。您唯一应该关心的是会话是在服务器端维护的。
您可以将对象存储在视图中。
Session["TripObject"] = TripObject;
并将其取回。
Trip sessionTripObject = (Trip) Session["TripObject"];
会话不止一次地咬我。
IMO 客户端状态不属于服务器,而不属于数据库(特别是如果您需要扩展到多个服务器,在这种情况下会话将失败,您需要使用数据库/会话将其关闭无论如何服务器)。
鉴于您几乎肯定已经在使用 cookie 来让您的用户保持登录状态,您可以轻松地存储另一个。
在会话中存储短时间值是对服务器内存的浪费。您可以在第二页检索时释放它,但¿如果用户关闭浏览器会发生什么?这些值一直在浪费内存,直到会话超时,在常见情况下大约需要 30 分钟。
正如 activwerx 所说,Cookie 可能会被禁用,如果数据是危险的,则必须对其进行加密。
将第一个页面中的公共属性与行程列表一起使用,使用 Page.PreviousPage 重定向和检索行程列表。
基本代码:
从源页面获取公共属性值 在源页面上,创建一个或多个公共属性并保存页面。
Public ReadOnly Property CurrentCity() As String
Get
Return textCity.Text
End Get
End Property
public String CurrentCity
{
get
{
return textCity.Text;
}
}
注意 主要为公开跨页发布值而创建的源页面上的属性通常是只读属性。虽然源页面可以包含公共读/写属性,但从目标页面属性设置源页面属性通常没有任何意义,因为该值不会被持久化。
在目标页面上,添加@ PreviousPageType
指向源页面的页面指令。
以下代码示例显示了引用名为 SourcePage.aspx 的源页面的 PreviousPageType 指令
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>
PreviousPageType 指令使页面的 PreviousPage 属性键入到源页面类。
在目标页面代码中,使用 PreviousPage 属性的强类型成员来读取源代码属性。
Label1.Text = PreviousPage.CurrentCity;
适用于 TargetPage 的帖子
源页面.aspx
<asp:Button
ID="Button1"
PostBackUrl="~/TargetPage.aspx"
runat="server"
Text="Submit" />
和Server.Transfer(targetPage)
您在会话和 cookie 之间的决定涉及很多事情,但是对于仅在“单个会话”中的页面之间需要的小块数据,最好使用会话。
如果您想要持久的一般数据,如果您使用 cookie,则更好,但请注意,您应该始终考虑在 cookie 中丢失数据的可能性