我试图在页面加载时将两个标签的文本设置为随机数。这段代码
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 + ",");
}
}
...
适用于localhost但在我的服务器上运行时会抛出NullReferenceException。
堆栈追踪:
[NullReferenceException:对象引用未设置为对象的实例。] C:\ Users ** \ Documents \ Visual Studio 2010 \ Projects * *中的 .apps。 .Page_Load(Object sender,EventArgs e) ** \ APPS * * aspx.cs:22 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object 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(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+2207
答案 0 :(得分:3)
两个选项:
Label12
可以为null random
可能已被其他一段代码设置为null 诊断问题的第一部分是弄清楚其中的哪一个是这种情况。只需拆分作业:
string randomText = random.Next(99).ToString();
Label12.Text = randomText;
然后查看它失败的那一行。一旦你知道哪个表达式为null,你可以尝试找出为什么它是null。