c# Web

Core Mvc Uygulamasında Controller Tarafında Kullanılan Action Metodlar

MVC tasarım deseninde controller katmanı; içinde barındırdığı action metotları ile birlikte tarayıcıdan gelen sayfa isteklerini (URL) yöneten, view ve model katmanları arasındaki bağlantıyı sağlayan ve projenin iş sürecini kontrol eden katmandır.

Her bir controller, Microsoft.AspNetCore.Mvc.Controller sınıfından türetilen bir C# sınıfıdır ve içerisinde action metotlarını barındırır. Sınıf isimlendirmesinde dikkat edilmesi gereken husus; sınıf adının “Controller” kelimesi ile bitmesi gerektiğidir. Örneğin; Anasayfa controller sınıfının adı HomeController, Personel controller sınıfının adı PersonelController olmalıdır. Önemli bir diğer husus da controller sınıflarının, projenin ana dizininde bulunan Controllers alt klasörü altında yer alması gerektiğidir.

Tarayıcıdan gelen https://localhost:5001/Personel/xxx şeklindeki bir istek Personel controller tarafından yönetilecek anlamına gelir. Sondaki xxx controller içerisindeki bu isimdeki action metodu tarafından kontrol edilir.

Projeye yeni bir controller eklemek için Controllers klasörü üzerindeyken farenin sağ tuşuna basarak Add komutu çalıştırılır. Buradan Contoller seçilir. Mvc controller- Emtpy seçiliyken Add komutuna basılır. Controller ismi olarak PersonelController yazılır ve Add diyerek dosya oluşturulur. Dosyadaki kodlar aşağıdaki gibi oluşur.

    public class PersonelController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }

Action metotlar genellikle view döndürmek için kullanılır. Yukarıdaki örnekte Views klasörü altındaki Personel alt klasöründe yer alan Index.cshtml adlı dosya döndürülmektedir (Views> Personel>Index.cshtml).

Controller sınıfı tanımlandıktan sonra, proje ihtiyaçlarına uygun action metotlar oluşturulmalıdır. Index adlı action metot, https://localhost:5001/Personel/ gibi sonda action belirtilmediği durumlarda çalışan metottur. Aynı şekilde https://localhost:5001/Personel/Index şeklinde de çağrılabilir. Bu action metot şu şekilde test edilebilir:

        public string Index()
        {
            return "Personel controller sınıfındaki Index metodu çalıştı";
        }

Temel olarak controller sınıfında public olarak tanımlanan tüm metotlar action metot olarak isimlendirilir. Her bir controller sınıfı için Index() adlı metot varsayılan action metodudur. Yani action belirtilmediğinde çalışacak metot, Index() metodudur.

Her bir action metodu;

View (View katmanındaki ilgili dosya),

Dosya (Resim, video, vb.), 

JSON (JavaScript Object Notation)

string ve int gibi C# veri tipleri, gibi çeşitli tiplerde değer (ActionResult) döndürebilir ya da bir başka controller / actiona yönlendirme yapabilir.

Şimdi bunları sırasıyla görelim.

JSON döndüren action metot

Piyasada bulunan tüm programlar yayınlayacağı bilgileri json formatında oluştururlar. Bu bilgilere ihtiyaç duyan programcılar bu formatı okuyarak istedikleri bilgiyi çekebilirler. 

        public JsonResult JsonCikti()
        {
            JsonResult result = Json(new
            {
                Id = 1,
                Adi = "Ahmet",
                Soyadi = "Yaman",
                Maas = 1250.5f
            });
            return result;
        }

Resim dosyası döndüren action metot

Verilen bilgiler ışığında bir resim dosyası elde edilip görüntülenecekse bu action metod kullanılır. Resimler wwwroot klasörü altında saklanmaktadır.

        public FileResult Resim()
        {
            return File("~/smile.png", "image/png");
        }

ViewResult döndüren action metot

Bu metot view dosyasının tamamını oluşturarak client tarafına gönderir. Bu işlemi yaparken _ViewStart genel dosyası dahil tüm dosyayı işleyerek gönderir. 

        public ViewResult Olustur()
        {
            ViewResult result = View();
            return result;
        }

PartialViewResult döndüren action metot

Bu metot view dosyasıyla görüntülenen web sayfasının bir kısmını oluşturmak için kullanılır. Web sayfasının bir kısmını oluşturmak veya ajax işlemleriyle client tarafında işlem yapılacaksa bu action metot kullanılır.

        public PartialViewResult Olustur()
        {
            PartialViewResult result = PartialView();
            return result;
        }

EmptyResult döndüren action metot

Bazen kullanıcıdan alınan değerlerin sonucunda kullanıcıya herhangi bir değer göndermek istemeyebiliriz. Bu durumda bu metodu kullanabiliriz.

        public EmptyResult Olustur()
        {
            return new EmptyResult();
        }

ContentResult döndüren action metot

İstek sonucunda geriye metinsen bir değer döndüreceksek bu metodu kullanabiliriz.

        public ContentResult Olustur()
        {
            ContentResult result = Content("İşlem başarılı...");
            return result;
        }

ActionResult döndüren action metot

Gelen istek sonucunda geriye döndürülecek action türleri değişkenllik gösterebilir. Bu metodu kullanarak istenilen action metodunu seçerek isteklere cevap verebilirsibiz. Bu metot bir bakıma diğer tüm metodların anasıdır. 

        public ActionResult Sonuc()
        {
            if (true)
            {
                return Json(new object());
            }
        }

Bu action metoduyla ayni işlemi yapan IActionResult deyimidir. Kullanıcının istediği formata göre bilgilerin gönderilmesinde kullanılabilir. Genellikle bu metot controller sınıfında sürekli kullanılmaktadır.


İlgili Makaleler
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama1
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem Birinci Yazılı Çalışma Soruları
Visual Studio 2022 Programında Asp.Net Web Application Şablonu Görünmüyor Hatasını Düzeltme
Core Mvc Projesinde Tuple Nesneleri Post Etme ve Yakalama İşlemleri
Seri Port Yardımıyla Arduino Devresine Bağlanıp Ledleri Asp.Net Web Uygulamasından Yakıp Söndürme
Sitenin Alexa Dünya Sıralamasını Kodlarla Öğrenme
Personele Ait Boy ve Kilo Bilgilerine Göre İdeal Kiloyu Bulan Uygulamayı Asp.Net İle Yapınız
Bir Otobüs Firmasına Ait Bilet Satış İşlemlerini Class(Sınıf) Tanımlayarak Yapan c# Form Uygulaması
Asp.Net Uygulamasında Manual Olarak JSON Oluşturma
Web Uygulamalarında SqLite Kullanımı
Asp.Net Uygulamalarında DataList (Veri Listeleme) Kontrolü
C# Uygulamasında Miladi Takvimi Hicri Takvime, Hicri Takvimi Miladi Takvime Dönüştürme
RadioButton ile Cinsiyet Bilgisini Alan Asp.Net c# Uygulaması
2022 TYT Matematik Onbirinci Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
Asp.Net Uygulamalarında Modal PopUp Oluşturma
Asp.Net Uygulamalarında RequiredFieldValidator İşlemi
Visual Studio 2019 Programında c# İle Hazırlanan Web Projesini Local Sunucuda Yayınlama
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama4

Yorum Ekle
   
Kötü İyi