@if (Model.MakaleBaslik == "Referanslarımız") { @* Makale kontrolü mecburi değil. *@ <div class="row" style="margin: 30px 0px;"> @if (!String.IsNullOrEmpty(galeriler)) { if (galeriler.Any(c => char.IsDigit(c)) && galeriler.Contains(",")) { @* string.Any( ...IsDigit()) string içinde numerik değer var mı diye kontrol edecek. .Contains(",") stirng içerisinde virgül var mı diye kontrol edecek. İki şart da sağlanmıyorsa kod bloğu çalışmayacak. *@ string[] bolum = galeriler.Split(','); @* Kullanıcının özel alanı yazdığı değeri virgüllerden böl. Geriye sadece yazdığı numaralar kalacak. *@ foreach (string diziden in bolum) { @* Dizinin içerisine atadağın her değeri, yani kullanıcının virgül ile yazdığı her IDyi döndür. *@ int galeriID = Convert.ToInt32(diziden); @* string olarak gelen numerik değerleri ID olarak kullanabilmek için integera çeviriyoruz. *@ Fotogaleri galerim = Partial.Fotogaleri(galeriID); @* Fotogaleri modelini getir. Adını bastırmak için gerekli olacak. *@ IEnumerable<FotogaleriResim> resimler = Partial.FotogaleriResimleri(galeriID); @* IDsi belirtilen Fotogalerinin tüm fotoğraflarını, Modelden, IEnumerable ile bir tablo dizisine alıyoruz. *@ int donguSayisi = Convert.ToInt32(Math.Ceiling(resimler.Count() / Convert.ToDouble(4))); @* Modeldeki satırları resimler.Count ile sayıp, dönen sayı ondalık olabileceği için ve ben her dört resimde bir boşluk vermek istediğimden dolayı 4 rakmını double a çevirerek birbirine bölüyorum. Çıkan sayı ondalık olabilir ve arda kalan resimler için de bir satır oluşturulması gerektiğinden dolayı Math.Ceiling ile gelen sayıyı yukarı yuvarlıyorum; ardından bu sayıyı yeniden doğal sayıya çevirip donguSayisi değişkeninin içerisine atıyorum. *@ <h3>@Partial.FotogaleriAdi(galerim.FotogaleriID, dilk)</h3> @* galerinin adını ilgili dilde yazdık. *@ for (int s = 0; s < donguSayisi; s = s + 1) { @* for döngüsü indeksi 0 dan başlayıp, donguSayisi değişkeninden küçük oluncaya kadar döncek *@ <div class="row"> @* her dört resimde bir boşluk için içer row attık *@ @foreach (FotogaleriResim FotoResim in resimler.Skip(s * 4).Take(4)) { @* FotogaleriResim kontrolörü adaptörü bir tablo dizisi ile IDsini aldığımız tüm resimleri çağırıyoruz. Ardından 4 atla 4 al modelini çalıştırmak için .Skip(s * 4), yani indeksin 4 ile çarpımına atla diyip, 4 tanesini aldırıyoruz. Böyle her rowdan sonra 4 atla 4 al modeli oluşuyor. gerisi standart fotogaleri işlemleri. *@ <div class="col-lg-3 galeri"> <a class="fancybox" href="/Resim/Fotogaleri/Buyuk/@(FotoResim.ResimLink)" data-fancybox-group="gallery-@(galeriID)" title="@Partial.FotogaleriResimAdi(FotoResim.ResimID, dilk)"> <img class="img-responsive" src="/Resim/Fotogaleri/Kucuk/@(FotoResim.ResimLink)" alt="@Partial.FotogaleriResimAdi(FotoResim.ResimID, dilk)" /> </a> <p>@Partial.FotogaleriResimAdi(FotoResim.ResimID, dilk)</p> </div> } </div> } } } } Kodlayan: İlhami