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.