2008-11-27 7 views
2

Dans un site ASP.NET 3.5, nous avons un Progess de caisse de paiement relativement standard qui contient un certain nombre de pages qui doivent être visités dans l'ordre (panier, détails de paiement, etc.)séquence page Gestion

Chaque page a un Bouton "Continuer" qui redirige vers la page suivante de la séquence.

Je voudrais une façon de gérer la séquence de page afin que:

  1. Je peux avoir une page principale qui définit le bouton « Continuer » et son événement code-behind Surclic gestionnaire
  2. Si l'utilisateur tente de visiter une page hors séquence (en tapant l'URL directement dans son navigateur, par exemple) ils sont redirigés vers la bonne page
  3. Cette séquence de pages est bien définie à un endroit dans mon code (dans une énumération par exemple)

Répondre

4

Pourquoi ne pas utiliser le contrôle Assistant ASP.NET? Alternativement (et je ne l'ai pas essayé donc je ne peux pas dire comment cela fonctionne bien), vous pouvez utiliser Windows Workflow pour définir un flux de travail séquentiel et laisser contrôler les pages de commande. Il y a un article à l'adresse suivante: http://www.windowsflow.com/fr/index.html http://www.devx.com/dotnet/Article/34732 qui vous amène à le faire de cette façon.

1

Vérifiez la variable HttpRequest.UrlReferrer dans chaque méthode Page_Load ...

http://msdn.microsoft.com/en-us/library/system.web.httprequest.urlreferrer.aspx

... et ne pas oublier de vérifier les valeurs nulles! Vous pouvez les faire rebondir là où ils sont supposés être, d'après leur origine.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     Session["PreviousPage"] = Request.UrlReferrer.ToString(); 
     ... 
    } 
    else 
    { 
     ... 
    } 
}