Je voudrais simplement jeter un drapeau en session lorsque vous faites une redirection. Vérifiez l'indicateur sur chaque chargement dans la page maître et effacez-le afin que les demandes suivantes ne le détectent pas inutilement. Peut-être pouvez-vous créer une classe d'assistance de réacheminement pour centraliser la responsabilité d'établissement d'un drapeau.
if (Session["RedirectFlag"] != null && (bool)Session["RedirectFlag"])
{
// clear your placeholder
Session.Remove("RedirectFlag"); // clear the flag
}
..
public static class HttpResponseExtension
{
public static void RedirectWithFlag(this HttpResponse response, string url)
{
response.RedirectWithFlag(url, true);
}
public static void RedirectWithFlag(this HttpResponse response, string url, bool endResponse)
{
System.Web.HttpContext.Current.Session["RedirectFlag"] = true;
response.Redirect(url, endResponse);
}
}
Si vous êtes dans le contrôle des Redirects, vous pouvez ajouter un drapeau à la chaîne de requête indiquant que c'est une redirection et que la page principale chèque pour l'argument querystring. –