跟踪工作流/页面流/用户流管理的最佳方法-ASP.NET

跟踪工作流/页面流/用户流管理的最佳方法-ASP.NET,asp.net,workflow,Asp.net,Workflow,我们仍然在.NET1.1中 我有一个大约15页的小申请。工作流不像步骤1、步骤2那样简单。。但它是非常随机的,用户可以从步骤1跳到步骤5或非常随机。不仅用户可以跳转,而且由于一些业务规则,我们需要将用户放在相应的步骤x中 我想知道的是如何保持这些跟踪容易。我的意思是,如果我想在第1步之后将用户发送到第3步,并且用户知道第7步的url,他应该不能去那里,他应该去我告诉他去的地方。我的意思是他应该被转到第三步 有道理吗 我的想法是使用一个会话变量,跟踪下一页的用户。那么有没有更好的方法呢?从您的描述

我们仍然在.NET1.1中

我有一个大约15页的小申请。工作流不像步骤1、步骤2那样简单。。但它是非常随机的,用户可以从步骤1跳到步骤5或非常随机。不仅用户可以跳转,而且由于一些业务规则,我们需要将用户放在相应的步骤x中

我想知道的是如何保持这些跟踪容易。我的意思是,如果我想在第1步之后将用户发送到第3步,并且用户知道第7步的url,他应该不能去那里,他应该去我告诉他去的地方。我的意思是他应该被转到第三步

有道理吗


我的想法是使用一个会话变量,跟踪下一页的用户。那么有没有更好的方法呢?

从您的描述中我可以得出,会话是正确的方法。会话用于在请求之间跟踪有关用户的短暂数据,如此。

从您的描述中可以看出,会话是正确的方法。会话用于在请求之间跟踪有关用户的短暂数据,如此。

如果您使用的是较新版本的框架,我建议使用向导控件

然而,当我们还在使用1.1时,我遇到了一个与您类似的情况,我所做的基本上是想出了我自己的向导控件。这是一个有点“黑客”,但这是我当时能想到的最好的。我不知道是否有人会提出更好的建议(我相信有更好、不那么丑陋的方法来实现这一点),但以下是我们如何处理的:

我们所做的不是在不同的页面中使用不同的步骤,而是将它们放在一个页面上的不同ASP:Panel控件中。我们将这些面板命名为“PanelStep1”、“PanelStep2”等等

无论如何,我们在一个隐藏的表单字段中跟踪当前索引,并根据该值设置可见面板

这种方法很难看,但它可以解决禁止用户浏览下一步页面的问题(通过将所有步骤都放在一个页面中),还允许您控制当前索引(通过在需要设置索引的任何事件上设置隐藏表单字段的值)。它将索引保留在URL之外,等等


它还提供了在一个页面中提供所有收集的信息的好处。我不知道您是在从一个步骤传递信息到另一个步骤,还是在每个页面上更新数据库中的一些信息,等等,但是如果您想一次完成这一切,这将是一个选项。

如果您使用的是较新版本的框架,我建议使用向导控件

然而,当我们还在使用1.1时,我遇到了一个与您类似的情况,我所做的基本上是想出了我自己的向导控件。这是一个有点“黑客”,但这是我当时能想到的最好的。我不知道是否有人会提出更好的建议(我相信有更好、不那么丑陋的方法来实现这一点),但以下是我们如何处理的:

我们所做的不是在不同的页面中使用不同的步骤,而是将它们放在一个页面上的不同ASP:Panel控件中。我们将这些面板命名为“PanelStep1”、“PanelStep2”等等

无论如何,我们在一个隐藏的表单字段中跟踪当前索引,并根据该值设置可见面板

这种方法很难看,但它可以解决禁止用户浏览下一步页面的问题(通过将所有步骤都放在一个页面中),还允许您控制当前索引(通过在需要设置索引的任何事件上设置隐藏表单字段的值)。它将索引保留在URL之外,等等


它还提供了在一个页面中提供所有收集的信息的好处。我不知道您是否正在将信息从一个步骤传递到另一个步骤,或者在每个页面上更新数据库中的一些信息,等等,但是如果您想一次完成这一切,这将是一个选项。

另一个选项是从page类继承一个新的基本页面,并将用于执行正确工作流步骤的代码放在其中(或者更好,在您从那里调用的业务逻辑类库中)。然后让您的每个步骤继承此页面而不是普通的基本页面。

另一个选项是从页面类继承新的基本页面,并将用于执行正确工作流步骤的代码放在其中(或者更好,在从那里调用的业务逻辑类库中)。然后让您的每个步骤都继承此页面而不是普通的基本页面。

虽然不能去您想去的地方,但有点烦人,您同意吗?仍在.NET 1.1中?!您有我的同情心!他没有我的同情心!他不必像我一样从1.1升级到2.0!迁移到2.0不在我手中。这一切都掌握在所谓的最高管理层手中,当然$$他们有。@Machine它不是..让我们假设一些用户在step6中做了一些事情,然后离开了计算机..下一个用户进来并输入www.mysite.com,我们最新的浏览器带来了step6 url的历史..这样用户选择step6并期望进入step1..这就是我的想法..Bi虽然不能去你想去的地方并不烦人,你同意吗?仍然在.NET 1.1中?!你有我的同情心!他没有我的同情心!他不必像我一样把所有的头发从1.1升级到2.0!迁移到2.0不在我的手中。这一切都在所谓的高层管理人员手中,当然他们有。$$。@Machine It It It不是..让我们假设一些用户在step6中做了一些事情并离开了计算机..下一个用户进来并输入www.mysite.com,我们的最新浏览器带来了step6 url的历史..这样用户选择step6并期望进入step1..这就是我的想法..我甚至无法想象这样做.想象15页aspx代码+15页代码隐藏代码+p埃特·布卢姆控制着aspx上的代码。上帝在歌唱