Asp.Net MVC Veri Aktarım Elemanı
Merhaba, MVC ile site geliştiriyorsanız benim karşılaştığım durum ile sizde karşılaşabilirsiniz. Burada olay şöyle gelişiyor:
1. Kişi yeni veri giriş ekranında bir veri giriyor.
2. sistem verinin doğruluğundan emin olduktan sonra veriyi veri tabanına kaydediyor.
3. sonrada işlem listeleme sayfasına devrediliyor.
bu işleme kod olarak baktığımızda :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class Ornek : Controller { public ActionResult Index() { var veriler = VeriKaynagi.VerileriAl(); return View(veriler); } public ActionResult Yeni() { return View(new Veri()); } [HttpPost] public ActionResult Ekle(Veri veri) { if (!ModelState.IsValid) { return View("Yeni", veri); } // veriyi veri tabanına kaydeden kodlar return RedirectToAction("Index"); } } |
Şimdi yapmamız gereken veri doğru olarak kaydedildiğine dair bir bilgiyi sayfaya göndermek istiyorum. Ama bunuda yapıyı bozmadan yapmam lazım. O zaman ilk aklıma ViewBag kullanmak geldi ve kodu şöyle düzelttim :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class Ornek : Controller { public ActionResult Index() { var veriler = VeriKaynagi.VerileriAl(); return View(veriler); } public ActionResult Yeni() { return View(new Veri()); } [HttpPost] public ActionResult Ekle(Veri veri) { if (!ModelState.IsValid) { return View("Yeni", veri); } // veriyi veri tabanına kaydeden kodlar ViewBag.EkMesaj = "Veriler Başarıyla Kaydedilmiştir."; return RedirectToAction("Index"); } } |
Çok zekice gelmişti bana ama maalesef kod çalışmadı. Daha doğrusu çalıştı ama ViewBag.EkMesaj her durumda boş geldi. Böyle olunca da Böyle Gitmez Söz Google’da dedim ve bir arama yaptım. Bu tür konularda çoğunlukla karşıma çıkan Stack Overflow‘da aradığım cevabı buldum.
Burada ViewBag’in doğru nokta olmadığı ve bunun yerine TempData elemanının kullanılması gerektiği yazıyordu. Böylece özellikle Redirect işlemlerinde ilk sayfa ikinci sayfaya bir data aktarabiliyordu. İlgili link bu.
O zaman çözüm şöyle olacak:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class Ornek : Controller { public ActionResult Index() { var veriler = VeriKaynagi.VerileriAl(); return View(veriler); } public ActionResult Yeni() { return View(new Veri()); } [[HttpPost]] public ActionResult Ekle(Veri veri) { if (!ModelState.IsValid) { return View("Yeni", veri); } // veriyi veri tabanına kaydeden kodlar TempData.Add("EkMesaj", "Veriler Başarıyla Kaydedilmiştir."); return RedirectToAction("Index"); } } |
İyide ön tarafı nasıl yazarız derseniz… ben biraz atraksiyonlu yazdım. Adım adım bakalım. Önce mesajın gözükeceği yeri ayarlamamız lazım. genel geçer bir durum olsun diye ben bu elemanı master layout içine aldım. <body> tagından önceye şöyle bir kod ekledim:
böylece mesaj geldiğinde böyle gözükecek. Bu elemanın görüntü özellikleri için css’e aşağıdakini ekledim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #dEkMesaj { display: none; position: fixed; top: 0; left: 50%; margin: 0 0 0 -100px; width: 200px; background: yellow; color: black; border: 1px solid darkorange; border-top: 0; text-align: center; } |
iyi gidiyoruz ama daha bitmedi. Birde olayın atraksiyon tarafını halleden sevgili javascript kodumuz var. Doğal olarak jquery kullanıyoruz:
1 2 3 4 5 6 7 8 9 | $(function () { if ($('#dEkMesaj').length > 0) { $('#dEkMesaj') .css({"opacity": 0, "display":"block"}) // görünmez elemanı önce görünür ama görünmez yapıyoruz :D .animate({ opacity: 1 }, 500) // sonrada yarım saniyede görünür hale geliyor. .delay(3000) // 3 saniye görüntüde kalıyor .animate({ opacity: 0 }, 1000, function () { $('#dEkMesaj').hide(); }); // sonrada görüntüden 1 saniyede çıkıyor. } }); |
bu mudur? bence budur.
Kolay gele…
Shay günü
Ne yapardiniz? Karari siz verin.
Komik bir cümle beklemeyin, çünkü yok.
Yine de okuyun.
Sorum şu: Aynı kararı siz verir miydiniz?
Okuma ve öğrenme zorluğu çeken çocuklara özel eğitim veren bir okul icin bağıs toplama yemeğinde, çocuklardan birisinin babası katılımcılar tarafından asla unutulmayacak bir konuşma yaptı.
Okula kendini adamış öğretmenleri kutladıktan sonra şöyle bir soru sordu:
‘Dışardaki etkenler tarafından etkilenmedikçe doğa herşeyi mükemmel bir şekil ve sırada yapıyor. Ama yine de oğlum Shay, diğer çocukların öğrendikleri gibi öğrenemiyor. Diğer çocukların anlayabildikleri gibi anlayamıyor.
Oğlumda doğal olması gereken şeyler nerede?’
Bu soru karşısında dinleyiciler sessiz kaldılar.
Baba devam etti. ‘Ben inanıyorum ki, dünyaya fiziksel ve zeka engelli Shay gibi bir çocuk geldiğinde, gerçek insan doğası kendini gösterme fırsatını buluyor ve bu da insanların o çocuğa davranış şekillerinde kendini gösteriyor.’
Ve sonra aşağıdaki hikayeyi anlatmaya başladı:
Shay ve babası bir gün parkta Shayin tanıdığı birkaç çocuğun baseball oynadıklarını gördüler.
Shay sordu, ‘Acaba oynamama izin verirler mi?’
Shay’in babası çoğu çocuğun Shay gibi bir çocuğun takımlarında oynamasını istemeyeceklerini ama aynı zamanda eğer oğluna izin verirlerse oğlunun o çok ihtiyacını duyduğu, engellerine rağmen başkaları tarafından kabul edilmenin özgüveni ve sahiplenme duygusunu vereceğini de biliyordu.
Shay’in babası çocuklardan birinin yanına yaklaştı ve (fazla birşey
beklemeyerek) Shay in oynayıp oynayamayacağını sordu. Çocuk şöyle danışabileceği birilerine baktı ve sonra ‘Şu anda 6 sayı gerideyiz ve oyun sekizinci turunda. Herhalde takıma girebilir ben de onu dokuzuncu turda vurucu olarak sokmaya çalışırım’ dedi.
Shay büyük bir gayretle takımın yanına gitti ve yüzünde kocaman bir gülümseme ile takım t-shirtini giydi. Babası gözünde yaş, kalbi sıcak duygularla dolu onu izledi. Çocuklar oğlunun kabul edilmesinden dolayı babanın mutluluğunu gördüler. Sekizinci turun sonunda Shay’in takımı birkaç puan kazandı ama hala 3 sayı gerideydi. Dokuzuncu turun başında Shay eldiveni eline geçirdi ve sağ açık sahaya çıktı. Ona doğru hiç top isabet etmemesine rağmen oyunda olmaktan son derece mutluydu ve babasının ona tribünlerden el salladığını gördüğünde yüzünde kocaman bir gülümseme vardı.
Dokuzuncu turun sonunda Shay’in takımı yine puan kazandı. Şimdi bütün kaleler doluydu, oyunu kazanma şansı ortaya çıkmıştı ve topa vurma sırası Shay’e gelmişti.
Bu noktada Shay’in vurucu olmasına izin vererek oyunu kaybetme riskini mi almalıydılar? Şaşırtıcı bir hamleyle Shay’e sopayı verdiler. Herkes topa isabet ettirme şansının sıfır olduğunu biliyorlardı çünkü bırakın topa vurmayı Shay sopayı bile elinde tutmasını bilmiyordu.
Ama Shay sahaya çıktığında top atıcı, diğer takımın kazanma şanslarını bir kenara bırakarak Shay’e bu fırsatı tanıdıklarını görünce birkaç adım öne giderek yumuşak bir şekilde topu Shay’e doğru fırlattı. İlk topa Shay zorlukla sopayı savurdu ama ıskaladı. Atıcı tekrar birkaç adım öne doğru geldi ve topu yine yumuşak bir şekilde Shay’e doğru attı. Shay sopayı savurdu ve hafifçe topa dokunarak yere atıcıya doğru vurdu.
Oyun şimdi bitecekti. Atıcı topu yerden aldı ve ilk kaledeki adamına
kolaylıkla atabilecek ve Shay’i sobeleyerek oyunu bitirebilecekti.
Ama atıcı topu aldı ve ilk kaledeki adamının başının üzerinden diğer takım arkadaşlarının erişemeyeceği yere fırlattı.
Tribünlerdeki herkes ve iki takımda bağırmaya başladılar, ‘Shay, ilk kaleye koş, ilk kaleye koş!’ Shay hayatında hiç bu kadar uzağa koşmamıştı ama ilk kaleye gidebildi. Şaskınlıktan büyümüş gözleriyle yere çöktü.
Herkes bağırmaya devam etti, ‘İkinci kaleye koş, ikinci kaleye koş’ Nefes nefese Shay zorlukla ikinci kaleye koşabildi. Shay ikinci kaleye geldiği sırada açık sahada diğer takımdan biri topu almıştı … takımın en küçüğü olan bu çocuk kahraman olma şansını elinde tutuyordu. Topu ikinci kaledeki adamına atabilirdi ama top atıcısının niyetini anladığından o da kasıtlı olarak topu üçüncü kaledeki arkadaşının başının üzerinden attı.
Herkes bağırıyordu, ‘Shay, Shay, Shay, bütün yolu koş Shay’
Karşı takımdan birinin yardım ederek onu üçüncü kaleye doğru döndürmesiyle Shay üçüncü kaleye koşabildi, ‘Üçüncüye koş! Shay, üçüncüye koş!’
Shay üçüncüye gelirken diğer takımdakı çocuklar ve seyirciler ayağa
kalkmışlardı ve bağırıyorlardı, ‘Shay, hepsini koş! Hepsini koş!’ Shay
hepsini koştu ve oyunu takımı için kazanan bir kahraman olarak herkes tarafından alkışlandı.
‘O gün’, dedi babası, gözlerinden yaşlar aşağıya doğru süzülerek,
‘iki takımdaki çocuklar da dünyaya bir parça sevgi ve insanlık getirmeyi başardılar’.
Shay bir sonraki yaza yetişemedi. O kış öldü. Bir kahraman olduğunu ve babasını mutlu ettiğini ve eve geldiğinde annesinin de gözyaşları içinde onu kucakladığını asla unutmadı.
Son NOKTA: E-mail ile hiç düşünmeden binlerce fıkra yolluyoruz, ama hayattaki seçimler konusunda mesaj olduğunda insanlar tereddüt ediyorlar.
Bunu size yollayan kişi hepimizin bir farklılık yapabileceği inancını taşıyor. Hepimizin her gün binlerce fırsatı olabiliyor ‘doğal olan şeyleri’ gerçekleştirmek için.
Bilgin bir adam bir zamanlar demişki: Her toplum, kendilerinden daha az şanslı olanlara nasıl davrandığıyla değerlendirilir.
Şimdi iki seçeneğiniz var:
1. Delete (Sil)
2. Forward (İlet)
Gününüz bir Shay günü olsun!
Gmail SMTP Ayarları
Gmail üzerinden email göndermek için web.config veya app.config dosyalarında yapmanız gereken değişiklik aşağıdadır.
1 2 3 4 5 6 7 8 9 10 11 | <system.net> <mailSettings> <smtp from="[E-mail adresiniz]@gmail.com" deliveryMethod="Network"> <network host="smtp.gmail.com" enableSsl="true" userName="[E-mail adresiniz]@gmail.com" password="[Şifreniz]" port="587"/> </smtp> </mailSettings> </system.net> |
Ancak bu şekilde gmail üzerinden email gönderebiliyorsunuz.
Hobbit Geliyor.
Ben filmler hakkında çok yorum yapmam, zaten bu aralar film de izleyemiyorum. Ama Hobbit’in Peter Jackson tarafından çekildiğini duyunca çok sevinmiştim. Belki kızımla da izleyebiliriz dedim ama benim 100 izlememde ancak kızımla izleyebileceğiz sanıyorum
Neyse Hobbit artık çekimi başlayan bir proje haline geldi. 2 bölüm halinde yayınlanacak. Yüzüklerin Efendisinde olduğu gibi 2 bölüm aynı zamanda çekilecek. İlk bölümün yayın tarihi ise 12.12.2012 olacak.
Bugün itibariyle internete trailer’ı da düştü. aşağıda bu adresi paylaşmak istiyorum.
Normalde belgesel türündeki film eklentilerin filmlerden sonra çıkardı ama film öncesinde çekimlerle ilgili çıkmış ilk videoda aşağıda :

