2010-07-26 6 views
0

J'ai la page A, B et C. Dans le chargement de la page C, j'ai utilisé un paramètre de chaîne de requête pour afficher certaines tables en fonction de leur origine, soit A ou B. a le bouton Annuler. Lorsqu'un utilisateur clique sur Annuler, il doit vérifier d'où il vient et rediriger vers la même page, je veux dire soit A ou B. Je ne suis pas du tout sûr de savoir comment utiliser la chaîne de requête pour la redirection.Rediriger la page en fonction de la chaîne de requête

S'il vous plaît aidez-moi !!

Merci!

Répondre

2

Vous pouvez utiliser quelque chose comme ceci pour rediriger la base sur le querystring:

var pageToredirectTo = "default.aspx"; 

switch(Request.QueryString["param"]) { 
    case "a": 
     pageToredirectTo = "pageA.aspx"; 
     break; 
    case "b": 
     pageToredirectTo = "pageB.aspx"; 
     break; 
} 
Response.Redirect(pageToRedirectTo); 
+0

Merci! Cela a fonctionné totalement bien! :) – Ram

0

En tant que bonne pratique, il est préférable de créer des propriétés sur la page pour enregistrer les valeurs des chaînes de requête dans ViewState afin de le rendre sûr pour une utilisation future et pour prévenir les comportements inattendus des pirates. Le code suivant ne correspond pas exactement à votre situation: si vous voulez bien utiliser les chaînes de requête, les valeurs transmises à l'aide des chaînes de requête spécifient les données qui seront affichées sur la page et cette page comporte de nombreux boutons de publication. de la page et enfin vous redirigerez l'utilisateur vers une autre page basée sur la valeur d'une chaîne de requête.

public class Default : Page 
{ 
    private readonly string VS_Bool_FromPageA = "VS_Bool_FromPageA"; 

    protected void Page_Load(object sender,EventArgs e) 
    { 
    if(!IsPostBack) 
    { 
     if(!string.IsNullOrEmpty(Request["frompageA"]) 
     { 
     bool fromA; 
     if(bool.TryParse(Request["frompageA"],out fromA) && fromA) 
      FromPageA = true; 
     else 
      FromPageA = false; 
     } 
    } 
    } 


    private bool FromPageA 
    { 
    get 
    { 
     if (ViewState[VS_Bool_FromPageA] != null) 
     { 
     return (bool)ViewState[VS_Bool_FromPageA]; 
     } 
     else 
     return false; 
    } 
    set 
    { 
     ViewState[VS_Bool_FromPageA] = value; 
    } 
    } 

    //if the user changed the value of the query string before hitting the cancel button 
    //your logic will stay consistent 
    protected void buttonCancel_Click(object sender,EventArgs e) 
    { 
    if(FromPageA) 
     Response.Redirect("~/pagea.aspx"); 
    else 
     Response.Redirect("~/pageb.aspx"); 
    } 
} 
Questions connexes