我正在尝试第一次使用会话,并希望以更好,更简单的方式了解它。
我正在使用GUID创建一个会话变量,并使用该GUID创建一个文件夹并存储该值,如下所示
If Session("tempDir") Is Nothing Then
Dim tempDir As String
tempDir = Path.GetRandomFileName()
tempDir = tempDir.Substring(0, tempDir.LastIndexOf("."))
IO.Directory.CreateDirectory(Server.MapPath("Uploads/" & tempDir))
IO.Directory.CreateDirectory(Server.MapPath("Downloads/" & tempDir))
Session.Add("tempDir", tempDir)
currentDirectory.Value = Session("tempDir").ToString
CopySession.Text = currentDirectory.Value
End If
这是生成GUID的代码:
function randomString(length) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
if (!length) {
length = Math.floor(Math.random() * chars.length);
}
var str = '';
for (var i = 0; i < length; i++) {
str += chars[Math.floor(Math.random() * chars.length)];
}
return str;
}
我正在使用下面的代码来获取页面上的回发,但是当我刷新它删除该值并给我一个NULL值。
If Page.IsPostBack Then
If Session("tempDir") Is Nothing Then
Dim tempDir As String
tempDir = Path.GetRandomFileName()
tempDir = tempDir.Substring(0, tempDir.LastIndexOf("."))
IO.Directory.CreateDirectory(Server.MapPath("Uploads/" & tempDir))
IO.Directory.CreateDirectory(Server.MapPath("Downloads/" & tempDir))
Session.Add("tempDir", tempDir)
currentDirectory.Value = Session("tempDir").ToString
CopySession.Text = currentDirectory.Value
End If
End If
我如何retrieve
tempDir
价值?任何人都可以给我一些详细的解释,因为我完全混淆了。
答案 0 :(得分:1)
从IF
中删除这两行 currentDirectory.Value = Session("tempDir").ToString
CopySession.Text = currentDirectory.Value
将是
If Page.IsPostBack Then
If Session("tempDir") Is Nothing Then
Dim tempDir As String
tempDir = Path.GetRandomFileName()
tempDir = tempDir.Substring(0, tempDir.LastIndexOf("."))
IO.Directory.CreateDirectory(Server.MapPath("Uploads/" & tempDir))
IO.Directory.CreateDirectory(Server.MapPath("Downloads/" & tempDir))
Session.Add("tempDir", tempDir)
End If
currentDirectory.Value = Session("tempDir").ToString
CopySession.Text = currentDirectory.Value
End If
这里有什么不同,如果会话不存在,那就去设置吧。如果tempDir的会话存在,因为你只是设置它,以太从前一个或其他调用中获取它。我希望这会给你你想知道的东西,或者告诉我你不理解的东西。
会话是Dictionary个值,在会话激活时(例如20分钟)与每个用户连接。当用户与站点交互时,此数据跟随此用户,您可以使用会话设置,读取或删除它们。 当页面加载在开始时读取的会话数据时,您可以在页面上使用它们,并在页面上卸载保存回会话管理器的会话数据。