【发布时间】:2013-10-03 01:11:00
【问题描述】:
我需要在同一应用程序的两个不同 aspx 页面之间共享数据(字符串、列表、数组)。如果我不想使用 cookie 并且不希望数据在 url 中可见,那么最好的方法是什么。
a) Form post method
b) Session (cookies?)
c) Sql
d) Server.Transfer
谢谢
【问题讨论】:
标签: asp.net forms session get server.transfer
我需要在同一应用程序的两个不同 aspx 页面之间共享数据(字符串、列表、数组)。如果我不想使用 cookie 并且不希望数据在 url 中可见,那么最好的方法是什么。
a) Form post method
b) Session (cookies?)
c) Sql
d) Server.Transfer
谢谢
【问题讨论】:
标签: asp.net forms session get server.transfer
内存中的Session 将是在页面之间存储数据而不在查询字符串 (URL) 中可见的最简单和最快(开发方面)的方法,如下所示:
要将List<string> 存储在Session 中,请执行以下操作:
var listOfStrings = new List<string>();
listOfStrings.Add("1");
listOfStrings.Add("2");
listOfStrings.Add("3");
Session["ListOfStrings"] = listOfStrings;
要从Session 中检索List<string>,请执行以下操作:
// Check to see if item in Session is actually there or not
if(Session["ListOfStrings"] != null)
{
// Cast the item in Session to a List<T>, because everything in Session is an object
var myListOfStringsRetrieved = Session["ListOfStrings"] as List<string>;
}
注意:我假设您使用 C#,但这可以很容易地转换为 VB.NET。
【讨论】:
更多细节可能会有所帮助。你想分享什么类型的信息?如果它是需要保存的东西,那么从一个页面将数据保存在数据库(或本地存储,或您正在使用的任何东西)中并在另一个页面中检索它可能是最有意义的。如果它只是临时数据,那么通过表单发布数据或使用会话变量可能更有意义。 session 变量的问题是您可能会超时会话。会话变量不是我的首选。
【讨论】: