当前位置:编程学习 > C#/ASP.NET >>

在自定义的HttpHandler中为如何获取原来的Context


打算用httpHandler做一个页面跳转的例子,在初始页面BasePage中为Context添加一个名为"PageName"的item,根据这个Item的值做页面跳转.
问题: 发现在自定义的httpHandler中得到的context和BasePage的context不是同一个(无法找到在BasePage中加入的"PageName" item),请问是怎么回事?
//BasePage后台代码
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpApplication httpApp = new HttpApplication();
        this.Context.Items.Add("PageName", "1");
        Response.Redirect("Page1.aspx");

    }
 
}

//自定义的IHttpHandler代码
public class Handler : IHttpHandler
{
public Handler()
{
//
// TODO: Add constructor logic here
//
}
    public void ProcessRequest(HttpContext context)
    {
        if (context.Items["PageName"].ToString()=="1")
        {
           context.Response.Redirect("Page1.aspx");  
        }
        else
        {
            context.Response.Redirect("Page2.aspx");
        }
    }
    public bool IsReusable
    {
        get { return false; }
    }
} --------------------编程问答--------------------

public   void   ProcessRequest(HttpContext   context) 
        { 
                if   (context.Request[ "PageName "].ToString()== "1 ") 
                { 
                      context.Response.Redirect( "Page1.aspx ");     
                } 
                else 
                { 
                        context.Response.Redirect( "Page2.aspx "); 
                } 
        } 

--------------------编程问答-------------------- 顶一下 --------------------编程问答-------------------- 帮你顶。 --------------------编程问答-------------------- 帮你顶。 --------------------编程问答-------------------- 好好看看页面生命周期的概念。 --------------------编程问答-------------------- Response.Redirect( "Page1.aspx "); 

Redirect了,就是两次不同的请求了, context当前不是同一个。


你可以尝试用一下Transfer或者直接Execute


补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,