C# 滚动我自己的ASP.NET注册向导
我想这是一个很难回答的问题,不必坐下来看所有的源代码,但我想我还是会发布它,看看大家对我们公司正在使用的流程是否有任何概念上的想法 我目前正在做的项目是我们最终用户的自我注册页面。以前,我们为每个不同的注册过程使用了3个单独的ASP.NET向导控件。我们的客户一致表示,流程非常混乱,他们不知道应该完成三个不同流程中的哪一个。因此,在被要求将三个应用程序编译成一个应用程序后,我很快发现注册向导控件的可扩展性不强。新流程需要非常动态,因此静态、单路径向导无法满足需要 因此,为了使注册过程更加动态,我推出了自己的注册应用程序,该应用程序依赖于会话状态引导用户完成注册。我目前的设置方式是使用二进制标志值进行注册中可能的步骤。然后,在SessionState中有一个整数值,在用户完成一个步骤后更新该整数值 例如: 这其中的另一个主要部分(这是动态部分发挥作用的地方)是使用会话变量来跟踪他们正在进行的注册类型。换句话说,他们可能有三种不同类型的注册:C# 滚动我自己的ASP.NET注册向导,c#,asp.net,C#,Asp.net,我想这是一个很难回答的问题,不必坐下来看所有的源代码,但我想我还是会发布它,看看大家对我们公司正在使用的流程是否有任何概念上的想法 我目前正在做的项目是我们最终用户的自我注册页面。以前,我们为每个不同的注册过程使用了3个单独的ASP.NET向导控件。我们的客户一致表示,流程非常混乱,他们不知道应该完成三个不同流程中的哪一个。因此,在被要求将三个应用程序编译成一个应用程序后,我很快发现注册向导控件的可扩展性不强。新流程需要非常动态,因此静态、单路径向导无法满足需要 因此,为了使注册过程更加动态,我
CJAM向导控件基于多视图控件,它基本上提供了一种一次显示一个(且仅一个)视图的方法。唯一的区别是,您需要使用“多视图”手动控制导航,因此允许您以非线性方式完成这些步骤 使用多视图时,所有视图中所有控件的值都将存储在ViewState中,因此无需将它们存储在会话中。每个视图中的按钮都可以回发,并且可以根据其他控件的值显示特定视图
看看这不是一个我能回答的问题。如果你是这么问的话,我觉得这是一个不错的方法。你有什么特别的问题吗?
const int accountNumberStep = 1;
const int userPassStep = 2;
const int usernameReclaimStep = 4;
/* code snipped */
// Code at the end of step Username/Password selection
// at the end of Username/Password selection step, update session state to record that step was finished
SessionState("stepsCompleted") = (int)SessionState("stepsCompleted") | userPassStep;
/* code snipped */
// Code at the beginning of each step to verify previous step was completed
if (!((int)SessionState("stepsCompleted") & userPassStep == userPassStep))
{
RedirectToPreviousPage(previousStep:=userPassStep);
}