-2

我有这个代码

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

为什么?

问题是什么?

4

1 回答 1

4

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

如果您确实想使用PreviousPage(我会被难住),请考虑到如果您直接访问页面,它可能为空。

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

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

于 2012-05-18T18:39:28.013 回答