Yazdığım kod null reference exception hatası döndürüyor. Ne yapabilirim?

0

 Bu Kod Anasayfada Çalışıyor. Fakat İkinci Bir sayfada Açmak isteyince null reference exception hatası alıyorum. Yardımcı olur musunuz?

public ActionResult Index()

        {

            ViewBag.Title = "Anasayfa";

            return View(new HomeVm

            {

                Sliderlist = Db.Sliders.ToList(),

                OemList = Db.Oems.ToList(),

                AnaUrunlerList = Db.Urunlers.Where(d => d.Anasayfa == true).ToList(),

                MarkaList = Db.Markas.ToList(),

                FooterList = Db.Footers.ToList(),

                SosyalList = Db.Sosyalmedias.ToList(), 

                AboutList = Db.Abouts.Where(d => d.Baslik == "HAKKIMIZDA").ToList()

            });

        }

using System.Collections.Generic;


namespace emotorsite.Models

{

    public class HomeVm

    {

        public List<Slider> Sliderlist { get; set; }

        public List<Urunler> AnaUrunlerList { get; set; }

        public List<Oem> OemList { get; set; }


        public List<Marka> MarkaList { get; set; }

        public List<Footer> FooterList { get; set; }

        public List<Sosyalmedia> SosyalList { get; set; }

        public List<About> AboutList { get; set; }


        public List<About> AboutList1 { get; set; }

        public List<Personel> PersonelList { get; set; }

        public List<Contact> ContactList { get; internal set; }

    }

}



<footer id="footer" class="footer footer-2">

    <!-- Footer Info

    ============================================= -->

    <div class="footer-info">

        <div class="container">

            <div class="row">


                @foreach (var Footer in Model.FooterList)

                {



                    <div class="col-xs-12 col-sm-6 col-md-3">

                        <div class="panel-info">

                            <div class="info-icon">

                                <i class="icon icon-Shield"></i>

                            </div>

                            <div class="info-content">

                                <h4>@Footer.Baslik</h4>

                                <p>@Footer.Aciklama</p>

                            </div>

                        </div>

                    </div>                      


                }


                <div class="footer-widget">

                    <div class="container">

                        <div class="row">


                            <div class="col-xs-12 col-sm-12 col-md-4 footer-widget-about">

                                @foreach (var About in Model.AboutList)

                                {

                                    <div class="footer-widget-title">

                                        <h5>@About.Baslik</h5>

                                    </div>

                                    <div class="footer-widget-content">

                                        <p>@About.Aciklama</p>


                                    </div>

                                }

 

ahmetumeyr ahmetumeyr (1)
5 yıl önce sordu

    Toplam 2 Cevap


    0

    null reference exception hatasını öncelikle ne olduğunu anlarsan bu tür null reference exception hatalarını kolayca çözebilirsin.

    null reference exception hatası null yani değer atanmamış nesneler yüzünden ortaya çıkar. Örneğin senin kodunda şöyle bir ifade var:

    Controller içinde şunu demişsin.

      FooterList = Db.Footers.ToList(),

    Daha view içinde şunu kullanmışsın:

    @Footer.Baslik

    Peki, Footer boşsa ne dönecek? Diyelim ki Databasede hiç br kayıt yok. O zaman Footer hiç olmayacak. Doğal olarak da Footer.Baslik anlamsız bir ifadeye dönüşecek.

    Null Reference hatası hangi nesne de gönüyor? Onu bul ve onun üzerinden hata gidermeye çalış. Verdiğin kodlardan bir şey söylemek mümkün değil.

    alattin alattin (16999)
    5 yıl önce cevaplandı

    • @ahmetumeyr ben Footer ile ilgili kısmı örnek olarak vardim sadece mantığını anlayabilmen için. hatayı Html.RenderPartial("Footer") alıyorsan, tıkladığın sayfanın Action'ında footer için gerekli modeli getirmiyorsundur muhtemelen. Html.RenderPartial("Footer") içinde FooterList kullanıyorsan tıkladığın sayfanın action bölümünde de bunu doldurmalısın. alattin 5 yıl önce

    0

    İlginize Teşekkürler;

    Footer dolu bir database. 

    Sayfa altında footer ı  @{Html.RenderPartial("Footer");} olarak çekiyorum.

    Anasayfada sorgu düzgün çalışıyor, başka herhangi bir sayfaya gittiğimde sorguyu null dönderiyor. 

     

     

    ahmetumeyr ahmetumeyr (1)
    5 yıl önce cevaplandı

      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol