繁体   English   中英

asp.net仅从父页面加载子页面

[英]asp.net Load Child page only from parent page

我有两个页面MainPage.aspx和ChildPage.aspx。 当我单击按钮时,从主页重定向到ChildPage。 如果我直接在浏览器上提供ChildPage的地址,则我不想直接加载它,而是想重定向到MainPage。 仅当从MainPage加载ChildPage时才必须加载。 我如何找到ChildPage.aspx的加载位置。 如何找到其父页面或从其加载位置。

我们可以在下面的代码中尝试一些吗

if (!IsPostBack)
{
   if (finding_source)
   {
       Response.Redirect("MainPage.aspx");
   }
}

即使您的问题不清楚,我还是在这里给出解决方案。

MAINPAGE.ASPX按钮请点击

 protected void lnkRegister_Click(object sender, EventArgs e)
{
 Session["MainPage"] = "true";//Encrypt it if u wish
Response.Redirect("childpage.aspx");
}

CHILDPAGE.ASPX页面加载

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
 if (!string.IsNullOrEmpty(Session["MainPage"] as string) && Session["MainPage"].Tostring()=="true")
            {
//proceed
}
else
{
 Response.Redirect("mainpage.aspx");
}
}

GLOBAL.ASAX

void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown
        Session.RemoveAll();
        Session.Clear();

        Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        Response.Cache.SetValidUntilExpires(false);
        Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();
    }

控制浏览器关闭或关闭几乎没有困难...但是当应用程序关闭时,您可以解决全局asax文件的问题。

您可以使用Request.UrlReferrer.AbsolutePath查看上一页。

if (!IsPostBack)
{
   if (Request.UrlReferrer != null && Request.UrlReferrer.AbsolutePath == "/MainPage")
   {
     //do what you want
   }else{
      Response.Redirect("~/MainPage.aspx");
   }
}

提示但是在回发中使用它时要小心,因为它将在回发期间将Request.UrlReferrer的值更改为当前页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM