1

我试图在页面加载时将两个标签的文本设置为随机数。这段代码

    Random random = new Random();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            LINE 22 Label12.Text = random.Next(99).ToString();
            LINE 23 Label13.Text = random.Next(999).ToString();
        }

        foreach (string s in scr1.Style.Keys)
        {
            Response.Write(s + ",");
        }
    }
    ...

在本地主机上工作,但在我的服务器上运行时会抛出 NullReferenceException。

堆栈跟踪:

[NullReferenceException:对象引用未设置为对象的实例。] .apps。.Page_Load(Object sender, EventArgs e) in C:\Users** \Documents\Visual Studio 2010\Projects* *** \apps* *.aspx.cs:22 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp , 对象 o, 对象 t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +91 System.Web.UI .Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint) +2207

4

1 回答 1

3

两种选择:

  • Label12可能为空
  • random可能已被其他一些代码设置为 null

诊断问题的第一部分是找出其中的情况。简单地拆分作业:

string randomText = random.Next(99).ToString();
Label12.Text = randomText;

然后看看它在哪一行失败。一旦您知道哪个表达式为空,您就可以尝试找出它为空的原因

于 2012-08-05T16:31:02.620 回答