在asp.net页面中存储数据(非会话)

时间:2012-06-09 13:50:00

标签: asp.net maintainability persistent-storage

我正在创建4个asp.net页面。前三页有“CONTINUE”按钮,最后一页有“SUBMIT”按钮。我不允许使用Sessions存储前三页数据。我需要在最后三页上使用“BACK”按钮。当我点击“返回”按钮时,我需要维护用户输入的上一页数据。

由于我的网页有一些回发,我无法使用javascript.history函数。

我的限制是:

由于应用程序是从Web场提供的,因此无法使用会话对象。但是,出于此目的,请将会话对象视为类似数据库的持久空间,您可以在其中存储数据。您的代码应该显示切换到不同持久空间的简单方法。

像持久空间这样的数据库是什么以及如何编写代码来切换到不同的持久空间?...

请告诉我如何继续......

谢谢

4 个答案:

答案 0 :(得分:2)

ASP.Net Wizard您可以选​​择控制作为选项。因为所有NextPrevious导航都由控件本身管理,并且每个Next PreviousFinish按钮都定义了事件。控件状态将自动存储在Viewstate中并由向导控件本身管理,您无需一次又一次地重新填充控件。

您可以在MSDN文章中找到更多详细信息,或查看Example此处

答案 1 :(得分:0)

我可以建议两种解决方案。 第一个用于会话的数据库持久存储,因为这解决了Web场的反要求。这很容易做到并且只需要零代码,只需要配置(当然还有数据库)。唯一(在99%的情况下无关紧要)警告是你在会话中存储的任何东西都必须是[Serializable]。 这使得Web场问题无关紧要,因为所有节点将共享同一个数据库,这使问题没有实际意义。点击此处:http://msdn.microsoft.com/en-us/library/ms972429.aspx

第二个是非常自定义的,使用许多隐藏字段或其他控件来存储信息(主要使用Viewstate传输数据)和页面之间的交叉发布(

答案 2 :(得分:0)

您是否考虑通过某些网络服务电话或其他内容将数据存储在数据库中?为什么不在每次导航到新页面时都进行Ajax调用来存储和检索数据?

   $(document).ready(function () {
    $.ajax({
              type: "POST",
              url: "/Services/SomeServiceService.asmx/GetData",
              data: "{ 'myval' : 'someval'}",
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              error: function (resp) { alert("ERROR\n" + resp.responseText); },
              success: function (data) {
             }
    });
    $(".next").click(function(event){
      $.ajax({
               type: "POST",
               url: "/Services/SomeServiceService.asmx/SaveData",
               data: "{ 'myval' : 'someval'}",
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               error: function (resp) { alert("ERROR\n" + resp.responseText); },
               success: function (data) {
              }
     });
    });
  });

答案 3 :(得分:0)

我为Web表单编写了一个导航项目,您会觉得很有趣,因为它需要一种新方法来记住访问过的页面和输入的数据,http://navigation.codeplex.com/

我还在上个月的MSDN杂志上撰写了一篇关于它的介绍性文章,http://msdn.microsoft.com/en-gb/magazine/hh975349.aspx

如果您有兴趣或需要帮助,请告诉我