好的,这段代码偶尔抛出一个空引用错误,因为返回((AVMain)this.Page).Model没有返回任何内容。即使使用其他人失败的相同ID值,我也无法重复此错误。任何帮助将不胜感激!
protected AVModel Model
{
get
{
return ((AVMain)this.Page).Model;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (SessionData.IsAudit.HasValue && SessionData.IsAudit.Value == true)
{
cbFlagAudit.Visible = false;
}
if (!IsPostBack)
{
cbFlagAudit.Checked = this.Model.FlagForAudit.HasValue ? this.Model.FlagForAudit.Value : false;
}
}
答案 0 :(得分:0)
我首先在整个逻辑中添加一些空引用检查。这应该可以防止NullReferenceException
被抛出。
这是怎么回事?
protected AVModel Model
{
get
{
if(this.Page is AVMain)
{
var page = this.Page as AVMain;
return page.Model;
}
return null;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (SessionData.IsAudit.HasValue && SessionData.IsAudit.Value == true)
{
cbFlagAudit.Visible = false;
}
if (!IsPostBack)
{
var model = this.Model;
Boolean? value = null;
if(model != null)
{
value = model.FlagForAudit;
}
cbFlagAudit.Checked = (value.HasValue && value.Value)
}
}
答案 1 :(得分:0)
谢谢大家的建议,但由于数据库中的权限错误,实际上是在生成错误。它导致存储过程失败并且不返回填充对象所需的数据,因此它为null。最初的开发人员没有在这个项目中设置错误陷阱,因此需要花费几天时间才能找到时间。总是抓住你的错误!