检查PostBack时,对象引用未设置为对象的实例

时间:2012-05-18 18:31:48

标签: c# asp.net forms

我有这段代码

if (PreviousPage.IsPostBack)
    {
        if (Request.Form["username"] == ConfigurationManager.AppSettings["username"] && Request.Form["password"] == ConfigurationManager.AppSettings["password"])
        {
            Session["username"] = Request.Form["username"];
            using (var context = new mallEntities())
            {
                var countProducts = (from p in context.Products
                                     select p).Count();

                var countStores = (from p in context.Stores
                                   select p).Count();

                var countCategories = (from p in context.Categories
                                       select p).Count();

                Label3.Text = countProducts.ToString();
                Label2.Text = countStores.ToString();
                Label1.Text = countCategories.ToString();
            }
        }
        else
        {
            Response.Redirect("Default.aspx?invaild=true");
        }
    } else if(Session["username"] == null)
    {
        Response.Redirect("Default.aspx?session=false");
    }

我收到了此错误消息:

Object reference not set to an instance of an object

PreviousPage.IsPostBack

为什么?

有什么问题?

1 个答案:

答案 0 :(得分:4)

我不确定你为什么使用PreviousPage.IsPosback所以我猜这是一个错误。您应该使用Page.IsPostback

如果您确实想要使用PreviousPage(我会被难倒),请考虑如果您访问页面direclty它可以为null。

  
    

使用传输方法或跨页面发布将处理从一个ASP.NET页面传输到另一个页面时,原始页面包含目标页面可能需要的请求信息。您使用PreviousPage属性来访问该信息

         

当用户直接从服务器请求该页面时,PreviousPage属性是一个空引用(在Visual Basic中为Nothing)。