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

时间:2009-09-03 16:01:54

标签: asp.net workflow

我们仍在使用.NET 1.1

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

我想知道的是如何让这些跟踪变得容易。我的意思是如果我想在步骤1之后将用户发送到第3步并且用户知道第7步的网址,他就不应该去那里,他应该去那里,我告诉他去。我的意思是他应该被重定向到第3步。

有道理吗?

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

3 个答案:

答案 0 :(得分:1)

会话将是我从您的描述中收集的正确方法。会话用于跟踪关于请求之间的用户的短暂数据。

答案 1 :(得分:0)

如果您使用的是较新版本的Framework,我会推荐使用Wizard控件。

然而,当我们还在1.1时,我的情况与你的情况相似,而我所做的基本上是我自己的Wizard控件。这有点像“黑客”,但这是我当时能想到的最好的。我不知道是否有人会提出更好的建议(我确信有更好,更简单的方法来实现这一点),但这是我们如何处理它:

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

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

这种方法很难看,但它可以解决不允许用户在下一步页面中导航的问题(通过在一个页面中完成所有步骤),并且还允许您控制当前索引(通过设置隐藏的表单)字段对您需要用于设置索引的任何事件的值)。它使索引保持在URL等之外

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

答案 2 :(得分:0)

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