Dictionary 经典的ASP。在字典中显示新键和值

Dictionary 经典的ASP。在字典中显示新键和值,dictionary,asp-classic,Dictionary,Asp Classic,我刚接触经典asp,但发现dictionary对象有问题。我想做的是发布一个新的键和值。它将动态地向字典中添加一个新的键和值,并将其显示在浏览器中 每当我发布一个新的键和值时,它不会保存我发布的内容 <html> <head> </head> <body> <form method="post" action="form.asp"> <input type="text" id="key" name="key" /

我刚接触经典asp,但发现dictionary对象有问题。我想做的是发布一个新的键和值。它将动态地向字典中添加一个新的键和值,并将其显示在浏览器中

每当我发布一个新的键和值时,它不会保存我发布的内容

 <html>
 <head>
 </head>

 <body>
  <form method="post" action="form.asp">
  <input type="text" id="key" name="key" /> <br />
  <input type="text" id="value"name="value" />
  <input type="submit" name="Submit" value="Submit" />
   </form>

  <%

 Dim key
 Dim value

  key = request.form("key")
  value = request.form("value")

   Set d = Server.CreateObject("Scripting.Dictionary")
   d.add key,value

      Response.Write("<p>The value of the keys are:</p>")
              a=d.Keys
          for i = 0 To d.Count -1
             s = s & a(i) & "<br />"
           next
           Response.Write(s)
              %>
          </body> 
       </html>



尝试此操作以显示键和值。
要保存它,您需要将dictionary对象放入会话值或将dictionary值保存为数组

 <html>
<head>
</head>

<body>
<form method="post" action="form.asp">
<input type="text" id="key" name="key" /> <br />
<input type="text" id="value"name="value" />
<input type="submit" name="Submit" value="Submit" />
</form>

<%

Dim key
Dim value

key = request.form("key")
value = request.form("value")

Set d = Server.CreateObject("Scripting.Dictionary")
d.add key,value

Response.Write("<p>The value of the keys are:</p>")
a=d.keys
b=d.items
for i = 0 To d.Count - 1
   s = s & a(i) & "=" & b(i) & "<br />"
next
Response.Write(s)
%>
</body>
</html>



您需要的是在会话中存储字典,然后每次都从那里获取字典,添加项目并更新会话:

Dim d
If IsObject(Session("d")) Then
    Set d = Session("d")
Else  
    Set d = Server.CreateObject("Scripting.Dictionary")
End If
d.add key, value
Set Session("d") = d
这样,每次用户发布数据时,都会将其添加到全局存储器中。

注意,默认情况下,会话在用户空闲20分钟后过期。

是的,就像我昨天说的那样-字典需要存储在会话值中