Disons que j'ai 3 pages, (origine1.aspx)/(origine2.aspx)/(destination.aspx), et que j'ai un contrôle qui représente arrière J'ai fait des recherches sur le web et j'ai trouvé de nombreuses idées simples et intéressantes, telles que queryString et sessions, mais malheureusement, je n'ai pas réussi à trouver une solution à ce problème. ne doit pas Je n'utilise aucun d'entre eux, alors une aide ?
Réponses
Trop de publicités?Jetez un coup d'œil à Request.UrlReferrer
.
Vous pourriez aller du côté client avec javascript, mais si vous avez besoin d'aller sur le serveur :
Je ne pense pas qu'il soit très joli mais il fait le travail. Il vous donne aussi beaucoup de puissance.
Tout d'abord, dans la page principale, nous avons un code comme celui-ci pour définir le nom de la page dans une session
if (!IsPostBack)
{
if (Request.UrlReferrer != null && Request.UrlReferrer.AbsoluteUri != null)
{
Session.Add("UrlReferrer", Request.UrlReferrer.AbsoluteUri);
}
}
Ensuite, nous avons un ashx backhandler avec un code simple comme celui-ci.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
/// <summary>
/// Summary description for Backhandler
/// </summary>
public class Backhandler : IHttpHandler
{
private const string DEFAULTPAGE = "MyDdefaultreturnpage.aspx";
public void ProcessRequest(HttpContext context)
{
string previousPage = context.Session["UrlReferrer"] as String ?? DEFAULTPAGE;
context.Response.Redirect(previousPage);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
Tous les boutons de l'application peuvent faire une redirection vers les fichiers backhandler.ashx. Vous pouvez même mettre cela dans votre css.
J'espère que cela vous aidera.