对象引用未设置为对象的实例,如何修复

时间:2013-10-28 23:59:03

标签: asp.net

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。

Source Error:


Line 156:                                <img class="carouselImg" src="<%=slide.ImageUrl%>" />
Line 157:                                <%
Line 158:foreach (var el in slide.Hotspots.Elements())
Line 159:{ 
Line 160:      var Top = el.Element("top").Value;    








NullReferenceException: Object reference not set to an instance of an object.]
   ASP.views_home_index_aspx.__RenderContent2(HtmlTextWriter __w, Control parameterContainer) in c:\_ 
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +256
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) +59
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

3 个答案:

答案 0 :(得分:1)

if ((slide != null) && (slide.Hotspots != null))
{
    var elements = slide.Hotspots.Elements();
    if (elements != null)
    {
        foreach (var el in elements)
        {
            var element = el.Element("top");
            if (element.Value != null)
            {
                var Top = el.Element("top").Value;
                //...
            }
        }
    }
}

请注意,在上面的代码中,我假设el.Element是一种方法。如果是其他任何内容,请提供其他信息。

答案 1 :(得分:0)

您确认自己有“顶级”元素吗?如果有些元素没有“top”,则应跳过for循环的迭代。

foreach (var el in slide.Hotspots.Elements()){
  var Top = el.Element("top")
  if( Top == null )
    continue;

   //Now you are free to access Top.Value;   
}

答案 2 :(得分:0)

slideHotspots为空。调试此代码与代码隐藏相比很难。

找到填充slideHotspots的代码,并验证它们是否符合您的预期。

相关问题