Comment puis-je avoir la Réponse.Redirect() travailler à partir de la MasterPage?
J'ai un problème: lorsque j'appelle une Réponse.Redirect() de la MasterPage il ne fonctionne pas.
Eh bien, le débogage, je peux voir que, jusqu'à la Pre_Render() la méthode la page cible est chargé, mais est ensuite rendu à la page précédente.
Voici un peu de code pour mieux expliquer:
(à partir de MasterPageMain.maître.cs)
protected void Page_Init(object sender, EventArgs e)
{
string m_QueryStringValue = Request.QueryString.Get("action");
if ((!string.IsNullOrEmpty(m_QueryStringValue)) && (m_QueryStringValue.ToLower() == "send"))
{
if (Session["to"] != null && Session["to"] is List<string>) this.SendPageByMail();
else
{
Session.Add("AddressToSend", Request.RawUrl);
Response.Redirect("~/chooseRecipients.aspx");
}
}
}
J'ai un code javascript qui ajoute la chaîne de requête ajout de "action=envoyer" lorsque je clique sur le bouton Envoyer.
Si je suis sur la page "~/somethingInterestingToSend()" -par exemple - je veux aller sur la sélection des bénéficiaires de la page, mais lorsque je clique sur le bouton Envoyer, je vois toujours la même page.
Ce que peut être l'erreur?
OriginalL'auteur p4bl0 | 2009-01-21
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que je comprends parfaitement votre description du problème, mais voici quelques choses à considérer:
Vous parler d'un bouton envoyer. Si cela en est une , en cliquant sur elle tire un javascript publication sur le serveur. Cette publication est à l'URL d'origine. Je ne suis pas sûr de ce que vous êtes en train de modifier en Javascript, mais je ne pense pas que ça changerait de la publication de l'URL (et querystring).
Si vous avez besoin d'exécuter la logique de redirection, vous pourriez voulez exécuter dans l'événement click du bouton sur le serveur.
Si vous n'avez pas besoin d'exécuter toute logique sur le serveur, vous pouvez le rediriger avec javascript:
OriginalL'auteur HectorMac
Ne peux pas tester cette théorie (cours d'exécution à partir de la mémoire à l'instant), mais donner un coup de cette:
(désolé, nettoyé un peu le code)
OriginalL'auteur JerKimball
Si vous souhaitez rediriger l'utilisateur n'est pas connecté dans les utilisateurs vers une page d'identification, vous devez vérifier la Demande.RawUrl() comme ceci:
Tous les autres sites seront redirigés.
OriginalL'auteur MasterPitch
Je ne sais pas si c'est la racine de votre problème, mais je changerais les 2 choses. J'aimerais changer votre code:
et de déplacer la logique de PageLoad
OriginalL'auteur Echostorm