folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Localhost Fitness Takip Uygulamam ASP.NET MVC



Localhost Fitness Takip Uygulamam ASP.NET MVC

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Github üzerinden kodu günceller misin? Sonra hangi kısmı diyorsan tekrar söyle kod üzerinden bakayım.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek
    Abizittin bunu yazdı

    hocalar tekrar merhaba

    sorduğum ilk soruya viewbag, viewdata cevap olarak geldi. biraz araştırdım gayet güzel sorduğum soraya verilen cevap doğru.

    sıkıntı şu; ben soruyu biraz eksik sormuşum.

    cshtml içerisinde yaptığım sorgular where(antrenman => antrenman.antrenmanID == seciliKayitID) gibi bi alan içeriyor.

    klasik makale sitesindeki kategori mantığıyla anlatmaya çalışayım. benim controller içerisinden view(obje) olarak yolladığım değer tüm kategorileri içeriyor. cshtml içerisinde kategorileri for döngüsüne sokup kategori idsine ait olan yazıları bulmak için tekrar sorgulama yapıyorum. benim bu sorguyu controller içerisine almam mümkün mü?

    controller içerisinde kategorileri for döngüsüne sokmam ve her döngüde yeni bi viewbag tanımlayıp buna cshtml içerisinden yine bi for döngüsü ile erişmeye çalışmam çok mu amatörce olur?

    var kategoriler = dbContext.Kategoriler.ToList();
    for(int i=0; i < kategoriler.Count; i++) {
        ViewBag.kategoridekiYazi[i] = dbContext.Yazilar.Where(yazi => yazi.kategoriID == kategoriler[i].kategoriID).ToList();
    }

    bu kullanım mümkün mü mantıklı mı daha iyi bi yöntem var mı?

    Hocam öncelikle viewbag, tempdata bunları kullanmanı pek önermem. mümkün mertebe action'dan view'a model geçir. böylece kodun daha derli toplu olur. öbür türlü ortalık çöplüğe dönüyor ve view'da ne var, action'dan view'a ne geçti parametre parametre bakman gerekir. güzel durmaz.

    Doğru anladım mı emin değilim ancak, amacın bulunulan kategorilerdeki yazıları sayfada göstermekse; direk controller'da dbContext.Kategoriler.Where(kosul).ToList() seklinde List'e alıp bunu view'e geçirmen gerekiyor. tüm yazıları alıp, bunu view'da for'la döndürmek yada yine aynı mantığı controller'da yapman hammallık. where koşulunu direk ilk sorgunda kullanabilirsin.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Abizittin
    Abizittin's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    @Hannibal_King güncelledim hocam. HomeController içerisindeki Index methodu ve index.cshtml dosyalarına bakabilirsen demek istediğimi göreceksindir.

    @TeRRoR evet hocam dediğin gibi ortalık biraz karışıyor. Tekrar anlatayım. Index methodunun return View(antrenmanlar) ile antrenmanları gönderiyorum. cshtml içerisinde bunu for döngüsüne sokuyorum, döngü içerisinde antrenmandaki hareketlerin olduğu tabloya ait sorguyu yapıyorum antrenmanID değerini kullanarak, hareketler için de bir for döngüsü oluşturuyorum, bu döngü içerisinde de bu hareketID ye ait setlerin kaydının tutulduğu tabloya sorgu yapıyorum.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Attığın resimden yola çıkarak.Nasıl bir viewmodel class ı oluşturabiliriz diye düşündüm.Öyle bir viewmodel class ı oluşturalım ki dashboard için ne gerekiyorsa

    hepsini içinde barındırsın.

    Projenin root un da ViewModels isimli bir klasör oluşturdum.

    İçinede WorkoutFullDetail isminde bir sınıf koydum.Bu sınıfı öyle bir organize edicezki sen dashboard üzerinde hangi verileri göstericeksen yada hangi verilere 

    ihtiyacın varsa sadece onları taşıyacak.

    Fiziksel olarak .cs uzantılı bir dosyamızın içine 1 den fazla sınıf koyabiliriz.Java ile çalışıyor olsaydık 1 fiziksel dosya ya sadece 1 adet sınıf koyabilecektik.

    ViewModel sınıfımızı hazırladık.

    Sonra Controller içinde join ve altsorgular ile ihtiyacım olan herseyi çekiyorum.

    View katmanında hiç gereksiz c# kodu yok sadece foreach var. Sorgu falan yok yani view katmanında.Test etmedim veritabanı yok diye.

    Resimleri sıra ile atıyorum.

     

     

    View resminin alt kısımları sığmadı alt kısmın gözüktüğü şekilde atıyorum tekrar.

    Test etmedim ama %99 sorun yoktur hocam.

    Hannibal_King tarafından 13/Eyl/17 15:08 tarihinde düzenlenmiştir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    @Hannibal_King hacı alıntılamadım mesajını sayfa şişmesin diye. Projede PR'ını göremedim, PR oluşturabilir misin.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Githubda hiç pull request atmadım daha önce,  github nasıl kullanılır o konuda da zayıfım :) Bi deniyeyim bakalım.

    Edit: Şimdi kurcalıyorum hocam. 1-2 saate çözerim heralde.

     

    Hannibal_King tarafından 13/Eyl/17 17:29 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Attım bir pull request TeRRoR hocam.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Abizittin
    Abizittin's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    hocam detaylı yanıtın için çok teşekkür ederim. githubtan da PR ı mergeledim.

    ancak şöyle bi sıkıntı oluyor derleyip çalıştırdığımda:

    The entity or complex type 'FitnessWebAppModel.Antrenmanlar' cannot be constructed in a LINQ to Entities query.

    biraz googleladım sorun hakkında.

    burada
    https://stackoverflow.com/questions/37224610/the-entity-or-complex-type-cannot-be-constructed-in-a-linq-to-entities-query


    söylenen şey entity frameworkün bu işlemin şu an yaptığımız şekilde yapılmasını desteklemiyor olması deniyor. entity frameworkün veritabanındaki Antrenmanlar adında tanımladığı modelin dışına çıkmaya çalıştığımızdan sanıyorum. stackoverflowdaki sorulan diğer sorulara gelen çözümlerden çıkardığım şey şu:

    .Select(p => new WorkoutFullDetail() { } yerine

    .Select(p => new { } kullanmamız gerektiği. bu da senin yaptığın WorkoutFullDetail modelini boşa mı yapmış olduğunu gösteriyor anlamadım. senin oluşturduğun model üzerinden bu sorguyu ne şekilde düzeltmeliyiz?

     

    Abizittin tarafından 13/Eyl/17 22:08 tarihinde düzenlenmiştir
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Yok yok sadece () kısmını siler misin? Constructor  a izin vermiyor sanırım.

    Linq ifadelerindeki bu 3 ifadenin de () kısmını siler misin?

    new WorkoutFullDetail()

    new Antrenmanlar()

    new AntremanKayit()

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Abizittin
    Abizittin's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek
    Hannibal_King bunu yazdı

    Yok yok sadece () kısmını siler misin? Constructor  a izin vermiyor sanırım.

    Linq ifadelerindeki bu 3 ifadenin de () kısmını siler misin?

    new WorkoutFullDetail()

    new Antrenmanlar()

    new AntremanKayit()

    dediğin şekilde yaptım ancak aynı hatayı veriyor hocam.

Toplam Hit: 4493 Toplam Mesaj: 37
mssql entity framework fitness asp.net mvc responsive