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)
2 hafta ö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 (11501)
2 hafta ö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 2 hafta ö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)
2 hafta ö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