2. Controller Katmanı

 CONTROLLER 

Asp.net MVC’de controller , view ve model arasındaki bağlantıyı sağlayan kısımdır ve MVC yi control eden kısımdır. View’da kullanıcı tarafından alınan girdiler,veriler veya requestler controller vasıtasıyla modele iletilir. Aynı şekilde modelden gelen veriler de controller aracılığıyla view’da sunulur.  
Controller’lar ile Viewlar arasındaki bağlantıyı fonksyonelleştiren bazı özel metotlar mevcuttur. Biraz da onlardan bahsedeceğim

1. ActionResult

Action metot View’ın içindeki bilgilerin controller sınıfları içerisinde yönetildiği metodlardır. 

  public ActionResult Home()
  {
   //calisacak kodlar
     return View();
  }

Action metod ile

View’a veri gönderme
View’ı çalıştırma
View’ın formunun içinedeki bilgileri alma
Veri tabanına kayıt yapma vs gibi işlemler gerçekleştirilir 


2. Adres Döndürme 

Action metottaki işlemler tamamlandiktan sonra Redirect içindeki adrese yönlendirme yapar.

örnek kullanim : bi kayıt bittikten sonra farklı kampanya sayfasına yönlendirme 

 public RedirectResult Home()
 {
   //calisacak kodlar
     return Redirect(“http://www.cagataykiziltan.com”);
  }

3.Dosya Döndürme 

Pdf vs gibi dosyalar döndürür.

  public FileResult UniversiteBilgi()
  {
   //dosyanın pathi 
     string dosyaYolu="URL";

   //dosyanın içerik türü 

    string dosyaIcerikTuru = “application/pdf”

   //adres ve tür yollanir 

    return new FilePathResult (dosyaYolu , dosyaIcerikTuru); 

  4.Farklı Bir Action’a yönlendirme     return RedirectToAction(“EditFraudRule”, new { ruleId = fraudRule.RuleId });

  Çalıştıktan sonra farklı bir action metoda yönlenir.

  public RedirectToRouteResult Ekle(Fakulte kayit)
  { 

     veritabani.Fakulteler.Add(kayit);
     veritabani.SaveChanges();
 
     return new RedirectToRouteResult(new RouteValueDictionary (new {action=”Ekle” , controller =”Fakulte”} )    ); 

  } 

5.Farklı Bir Action’a parametre ile yönlendirme    

  Çalıştıktan sonra farklı bir action metoda yönlenir.

  public RedirectToRouteResult Ekle(Fakulte kayit)
  { 

     veritabani.Fakulteler.Add(kayit);
     veritabani.SaveChanges();
 
     return RedirectToAction("EditFraudRule", new { id= kayit.id});

  } 

 6. Listeyi Json Veri Olarak View’a Yönlendirme

  [httppost]
  public JsonResult Listele()
  {
     var fakulteler = veritabani.Fakuteler.ToList();

     return Json(fakulteler);
  }

 

 7. Partial View Döndüren Action metot

Diyelim ki bir sürü fakülteniz var ve her bir fakülteye dropdown list ile tıkladığınızda aşağıda fakülteler sıralansın istiyorsunuz.Tıkladığınızda aşağıda çıkacak fakülteleri partial view olarak tanımlayabilirsiniz. Aşağıdaki metodun view’ı oluşturulurken partial view olarak oluşturulması gerekir.

  public PartialViewResult FakultedekiBolumler(int id)
  {
      //fonksiyonel kodlar
      return PartialView();
   }

8. Javascript Döndürme

Javascript döndürülen action metodları, raporlama vb. işlemler sırasında javascript dosyalarının dinamik olarak oluşturulması gereken durumlarda kullanılmaktadır. Örneğin client side (istemci tarafında) oluşturulan raporlamalarda sayfadaki javascript kodlarının, raporun içeriğine göre sunucu çalıştırılması performans açısından avantaj sağlayacağı gibi raporun özelliklerine göre javascript kodlarınını spesifik olarak oluşturulması, raporun daha etkin kullanılmasını sağlayabilir.

 public JavaScriptResult MesajGoster()
 {
     string mesajScripti = "alert("Buton tiklandi, Javascript kodu action metoddan alındı");";

    return JavaScript(mesajScripti);
 }

    view’in içerisine, tıklandığında MesajGoster action metoduna ulaşıp uyarı mesajını gösterecek bir buton ekleyiniz.

    <input type="button" id="btMesajGoster" value="Tıkla"/>

Butona tıklayınca jquery’nin ajax fonksiyonu ile MesajGoster action metoduna ulaşıp, gelen veriyi (javascript kodlarını) View içine “javascriptKodları” ID’li div’e yerleştiriniz.