这应该是一个简单的逻辑问题,但出于某种原因,我已经为此苦苦挣扎了好几个小时,试图提出一个半干净的算法来实现它。我正在使用具有 SQL Server 背景的 MVC3,但即使您不了解 MVC,您仍然可以在算法方面帮助我。
我正在编写一个使用类似向导的界面的应用程序。目前,这些向导屏幕之间的导航是非常线性的(下一个按钮会立即进入页面,上一个按钮会立即进入之前的页面)。由于范围变化(我知道很有趣),我现在被告知要减少线性度。
对于第一次运行,用户必须按线性顺序访问所有页面,如下所示:
Step 1
Step 2
Step 3
SubStep 1
Sub-SubStep 1
Sub-SubStep 2
SubStep 2
Sub-SubStep 1
Sub-SubStep 2
...
SubStep *n*
Sub-SubStep 1
Sub-SubStep 2
Submission
其中n是基于在步骤 2 中输入的内容的变量。
向导提交后由管理员审核。如果他们发现信息丢失,他们可以解锁某些页面。当用户返回输入该信息时,他们应该只能查看那些特定页面。例如,导航可能是这样的:
Step 2
Step 3
SubStep 1
Sub-SubStep2
Submission
我当前的实现由数据库中的一个表组成,该表跟踪未锁定的页面。单击“下一步”按钮时,它会调用一个方法来确定下一页是什么。由于第 3 步中发生的奇怪且多变的导航,这种方法是一个容易被破坏的 if-else 分支噩梦。
任何有关简化此的建议将不胜感激。