asp.net中的对象引用错误
我正在asp.net中的page_load事件上使用以下代码asp.net中的对象引用错误,asp.net,Asp.net,我正在asp.net中的page_load事件上使用以下代码 protected void Page_Load(object sender, EventArgs e) { lblDate.Text = System.DateTime.Now.ToLongDateString(); if(!IsPostBack) { setImageUrl(); }
protected void Page_Load(object sender, EventArgs e)
{
lblDate.Text = System.DateTime.Now.ToLongDateString();
if(!IsPostBack)
{
setImageUrl();
}
}
protected void Timer1_Tick(object sender, EventArgs e)
{
setImageUrl();
}
private void setImageUrl()
{
Random rnd = new Random();
int i = rnd.Next(1, 7);
Image1.ImageUrl ="~/SlideImages/"+ i.ToString() + ".gif";
}
代码在页面加载事件中运行良好,但当我单击任何其他菜单项时,它会显示以下错误消息
对象引用未设置为对象的实例
我95%确定我为null,因为当您调用字符串()和对象时,如果它为null,它将抛出一个致命的异常。我要做的是在抛出错误的行上设置一个断点,并在调试模式下运行该项目,然后查看返回的内容。如果为空,则存在您的问题。因此,您必须找出随机方法没有正确实例化的原因
还有一个建议是在这一行上使用String.Format
Image1.ImageUrl = String.Format("~/SlideImages/{0}.gif", i);
只要i有效且为字符串,这将为您提供相同的结果集。Format将null格式化为空字符串。因此,您将有一个优雅的失败,您的图像将不会显示,这意味着您知道您的问题。Amy-错误消息应提供比您发布的更详细的信息,包括导致空引用异常的行号/代码行。你能在你的帖子中包括这个吗?Image1.ImageUrl=“~/slidemages/”+i.ToString()+“.gif”;这是显示错误的一行。这些“其他菜单项”是否部分页面加载?基本上,当您在页面之间导航时,听起来页面正在丢失对
Image1
的引用。Image1或其i为null,并且您正在调用null对象上的字符串