<% Class FormCache_Class 'given a form name and IRequestDictionary params (request.form) object, caches form values Public Sub SerializeForm(form_name, params) dim form_key, form_val, serialized_key For Each form_key in params form_val = params(form_key) serialized_key = CachedFormKeyName(form_name, form_key) 'put "serialize
" 'put "--form_key := " & form_key & "
" 'put "--form_val := " & form_val & "
" 'put "--serialized_key := " & serialized_key & "
" Session(serialized_key) = form_val Next End Sub 'given a form name, returns a dict with the form's stored values Public Function DeserializeForm(form_name) dim dict : set dict = Nothing dim serialized_key, serialized_val, form_key, form_val For Each serialized_key in Session.Contents 'put "serialized_key: " & serialized_key & "
" If InStr(serialized_key, "mvc.form." & form_name) > 0 then 'put "--match" & "
" If dict Is Nothing then set dict = Server.CreateObject("Scripting.Dictionary") 'put "dict created
" End If form_val = Session(serialized_key) form_key = Replace(serialized_key, "mvc.form." & form_name & ".", "") dict(form_key) = form_val 'Session.Contents.Remove serialized_key 'put "--serialized_val: " & serialized_val & "
" 'put "--form_val: " & form_val & "
" End If Next set DeserializeForm = dict End Function 'given a form name, clears the keys for that form Public Sub ClearForm(form_name) dim key For Each key in Session.Contents If InStr(key, CachedFormKeyName(form_name, key)) > 0 then Session.Contents.Remove key End If Next End Sub Private Function CachedFormKeyName(form_name, key) CachedFormKeyName = "mvc.form." & form_name & "." & key End Function End Class dim FormCache__Singleton Function FormCache() if IsEmpty(FormCache__Singleton) then set FormCache__Singleton = new FormCache_Class end if set FormCache = FormCache__Singleton End Function %>