在此上下文中不提供请求

时间:2015-02-05 08:01:23

标签: c# asp.net

我有一个asp.net应用程序。我创建了一个继承自Page类的BasePage类。所有aspx页面都继承了该BasePage。有一个在BasePage中设置会话的功能。以下是代码

public class BasePage : Page
    {
        public string UserName { get; set; }


        public BasePage()
        {
            if (!SetSession())
            {
                Response.Redirect("login.aspx");
            }

        }

        private bool SetSession()
        {
            if (Request!=null && Request.QueryString["myvalue"] != null)
            {

                    this.UserName = ....
                    return true;
            }

            return false;
         }

有一个default.aspx页面,它由BasePage继承。一旦我获取default.aspx页面,它就会显示错误“请求在此上下文中不可用”。我正在使用Windows Server 2003.任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

尝试使用下面的请求

HttpContext.Current.Request

而不是从Page

引用它

更新工作代码副本(已测试)

public partial class _Default : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }

    public class BasePage : Page
    {
        public string UserName { get; set; }


        public BasePage()
        {
            if (!SetSession())
            {

            }

        }

        private bool SetSession()
        {
            if (HttpContext.Current.Request != null && HttpContext.Current.Request.QueryString["myvalue"] != null)
            {


            }

            return false;
        }
    }