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