Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

Asp.NET MVC – RegisterClientScriptBlock Metod Mantığı

Önceki yazılarımdan olan Asp.NET – RegisterClientScriptBlock Metodu başlıklı yazımda Asp.NET Web Forms mimarisinde RegisterClientScriptBlock metodunu nasıl kullanacağımızdan bahsetmiştim.Bu yazımızda ise, bu metodu varsa ki nasıl kullanacağımızı göstereceğim.Varsa ki diye vurgulayarak söylüyorum çünkü ben Asp.NET MVC mimarisinde RegisterClientScriptBlock metodunun olduğunu zannetmiyorum(tabi ki de olabilir, ama araştırmalarım sonucu şahsen ben bulamadım).Bu yüzden benzer mantıkta bir teknik olarak sizlere Asp.NET MVC’de ki mantığını aktaracağım.

Her ne kadar bu yazıyı okuyorsanız RegisterClientScriptBlock metodunun ne olduğunu biliyor, üstüne Asp.NET MVC’de ki kullanımını araştırıyorsunuz demektir.Hal böyleyken prensip gereği elimizdeki elemanlar nedir ne değildir tekrardan değinelim ve anlatmak istediğimizi sıfırdan bilmeyenlerin anlayacağı tarzda masaya yatıralım.

RegisterClientScriptBlock nedir? neye yarar?
Asp.NET Web Forms mimarisinde Client tabanlı programlama dili olan JavaScript kodlarını Server tarafında isteğe bağlı bir şekilde çalıştırmamızı sağlayan bir metoddur.

Peki Asp.NET MVC’de ki RegisterClientScriptBlock mantığı ne olabilir?
Asp.NET MVC’de Server olarak Controller katmanındaki sınıfları ve elemanları görebiliriz.Buradaki asıl problem bir Controller’da isteğe bağlı bir şekilde JavaScript kodlarını nasıl üretebilir ve View katmanında çalıştırabiliriz..Bu soruya cevap olarak ViewBag, ViewData gibi MVC mimarisinin veri taşıyıcıları eşliğinde View katmanına giderek o veri yapılarının null olup olmadıklarını kontrol edip sonuca göre JavaScript kodları oluşturup oluşturmaktır.Mantık budur.

Aslında bu yöntem ilkel diyebileceğimiz çok basit bir yapıya sahiptir.Aşağıdaki kodları inceleyelim.

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Mesaj = "Hoş geldiniz...";
            return View();
        }
    }

Gördüğünüz gibi “Home(Controller).cs” isimli Controller sınıfımız içerisinde JavaScript’le alakalı kodlar bulunmamaktadır.Dikkat ederseniz eğer bir tane “ViewBag.Mesaj” isimli bir veri taşıyıcımız mevcut.Şimdi View katmanımızdaki “Index.cshtml” dosyasına göz atalım.

@if (ViewBag.Mesaj != null)
{
    <script type="text/javascript">
        alert("@ViewBag.Mesaj");
    </script>
}

Gördüğünüz gibi ViewBag tipindeki veri taşıyıcısını kontrol ettikten sonra duruma göre JavaScript komutlarını oluşturmuş oluyoruz.Asp.NET Web Forms’da ki RegisterClientScriptBlock metodunun Asp.NET MVC mantığını da bu şekilde gerçekleştirmiş oluyoruz.

Sonraki yazılarımda görüşmek üzere..
İyi çalışmalar dilerim..

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*