Peter Jennings
Peter Jennings

Reputation: 359

Object reference not set to an instance of an object , how to fix

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

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

Upvotes: 0

Views: 2671

Answers (3)

Lajos Arpad
Lajos Arpad

Reputation: 77045

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;
                //...
            }
        }
    }
}

Note that in the code above I have assumed that el.Element is a method. If it is anything else, then please provide additional information.

Upvotes: 1

Karl Anderson
Karl Anderson

Reputation: 34844

Either slide or Hotspots is null. It is going to be difficult to debug this versus code-behind.

Find the code that populates slide and Hotspots and verify they are producing what you expect.

Upvotes: 0

Babak Naffas
Babak Naffas

Reputation: 12581

Have you confirmed that you have a "top" element? If there are elements that don't have a "top", you should skip those iterations of your for loop.

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

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

Upvotes: 0

Related Questions