Controller'da dbden çekilen verileri aşagıdaki gibi viewbaglere'e aktarıyorum fakat haliyde tabloda veri yok ise null hata fırlatıyor.başka bir yöntem veya bu hatanın çözümü nasıl olur acaba ?
StarDocsContext db = new StarDocsContext();
int senderID = Convert.ToInt32(Session["UserID"]);
ViewBag.inboxCount = db.Message.Where(i => i.AliciUserID == senderID && i.isRead == false).Count();
var settings = db.General.FirstOrDefault();
ViewBag.MetaTitle = settings.SiteTitle;
ViewBag.MetaDescription = settings.SiteDesc;
ViewBag.MetaKeywords = settings.SiteKeyw;
MVC NullEx Problemi
3
●375
- 26-07-2015, 21:59:10tam olarak hata verdiği yeri de yazsaydın.. Ama büyük ihitmal Count dan geliyordur çünkü where ile yaptığın sorgu null dönmüşse, null olan bir nesnenin count unu alamazsın haliyle..
şu şekil yapabilirsin kodunu
StarDocsContext db = new StarDocsContext(); int senderID = Convert.ToInt32(Session["UserID"]); var alici= = db.Message.Where(i => i.AliciUserID == senderID && i.isRead == false); if(alici!=null) ViewBag.inboxCount = alici.Count(); var settings = db.General.FirstOrDefault(f=>f); if(settings != null) { ViewBag.MetaTitle = settings.SiteTitle; ViewBag.MetaDescription = settings.SiteDesc; ViewBag.MetaKeywords = settings.SiteKeyw; } - 26-07-2015, 22:50:02Üyeliği durdurulduevet ertan hocam setting değişkenininde dediğiniz gibi null kontrolü yaparak viewbag'lere verilerileri göndererek view'de çekebiliyorum bu şekil.Öncelikle teşekkür ederim.ertan2002 adlı üyeden alıntı: mesajı görüntüle
peki bu tür durumlarda örnek benim yaptığım gibi title,desc gibi verileri çekerken başka bir yöntem önerebilir misiniz ? böyle durumlarda her defasında null kontrolü yapmadan sabit verileri çekmek adına. - 27-07-2015, 01:29:00bu şekil doğru aslında.. ama şöyle bi eklenti yapabilirsin..
sorgunun sonuna Select( new {istediğin alanlar})
ı seçtirebilrisin, böylece null olsa da olmasa da atama yapabilirsin.. yani select ve multi selecti araştır, hatta select in içine custom class da atabilirsin.. yani viewbag.x, viewbag.y .. yerine bir class oluşturup direk select i o class a atayabilirsin..
sonra da onu model olarak kullanabilirsin.. tabi ondan önce modelin null olup olmadığını kontrol ettirmen gerek