我使用单个页面用于两个不同的目的。默认情况下,它有一个行为,并在通过链接按钮重定向后进入同一页面时,它具有不同的行为,如更改母版页等...
如何检测到这一点并相应地改变行为?
答案 0 :(得分:1)
您可以通过标题中的referer字段了解您来自哪个页面。在asp.net中,您可以像这样检索它:
string MyReferrer;
if(Request.UrReferrer != null)
{
MyReferrer = Request.UrlReferrer.ToString();
}
答案 1 :(得分:1)
答案 2 :(得分:1)
如果你有一个页面有两个不同的行为,那么我建议你想要一个类似querystring参数的东西来区分这两个目的(例如somepage.aspx?mode = changeMaster)。然后,您可以检查此值并相应地更改您的行为。
如果您只是从一个地方进行第二次行为,那么最简单的方法就是让它具有默认行为而不是需要mode参数(这样您就不必更改所有指向页面的链接,只需一个链接按钮)。这应该比依赖引用者和其他并非总是发送的东西更可靠。
答案 3 :(得分:0)
我不知道asp.net但我非常害羞你可以从HTTP-headers referer / referrer 字段中获取它。
答案 4 :(得分:0)
假设您可以控制用户重定向的页面,请在执行页面应基于其行为的操作时设置Session
变量。
例如,在LinkButton_Click
事件中,您可以像这样设置Session变量:
protected void LinkButton_Click(object sender, EventArgs e)
{
Session["Source"] = "MyLinkButton";
}
在您网页的Page_Load
或Page_Init
事件中,检查该Session
变量的值,并根据Session
变量中的值执行网页的行为更改
protected void Page_Init(object sender, EventArgs e)
{
if (Session["Source"] == "MyLinkButton")
{
// do something
}
else if (Session["Source"] == "SomethingElse")
{
// dome something else
}
}