Takip Edin

ASP.NET MVC

ASP.NET MVC’de Controller

asp.net mvc'de controller - öne çıkan görsel

MVC mimarisinde controller, gelen herhangi bir URL isteğini işler. Controller, System.Web.Mvc.Controller temel sınıfından türetilmiş bir sınıftır. Controller sınıfı, Action metodları olarak adlandırılan public metotları içerir. Controller ve controller’ın action metodu gelen tarayıcı isteklerini işler, gerekli model verilerini alır ve uygun yanıtları geriye döndürür.

ASP.NET MVC’de her controller sınıfı adı, “Controller” kelimesi ile sonlanmalıdır. Örneğin, ana sayfa ve product sayfası için controller isimleri sırasıyla HomeController ve ProductController olmalıdır. Ayrıca, her controller sınıfı, MVC klasör yapısının Controller klasöründe bulunmalıdır.

Yeni Bir Controller Ekleme

ASP.NET MVC Uygulaması Oluşturma adlı yazıda, varsayılan bir HomeController oluşturan ilk MVC uygulamamızın nasıl oluşturulduğunu öğrendik. Şimdi ise yeni bir ProductController sınıfı oluşturalım:

Solution Explorer penceresinde bulunan Controller klasörüne sağ tıklayıp Add => Controller‘a tıklayalım:

controller klasörüne sağ tıklayıp add => controller'ı seçtik.
Şekil 1: Yeni Bir Controller Ekleme

Karşımıza çıkan Add New Scaffolded Item penceresinden MVC 5 Controller – Empty‘yi seçelim ve Add butonuna tıklayalım:

Add New Scaffolded Item penceresinden MVC 5 Controller - Empty'yi seçip Add butonuna tıkladık.
Şekil 2: MVC 5 Controller - Empty Şablonu Ekleme

Add butonuna tıkladıktan sonra aşağıda gösterildiği gibi Add Controller penceresi açılacaktır:

add controller penceresi - default controller
Şekil 3: DefaultController

Controller name kısmına ProductController yazıp Add butonuna tıklayalım(Controller adının Controller ile bitmesi gerektiğini unutmayın! ):

Add Controller Penceresi - ProductController adını controller name kısmına verdik.
Şekil 4: ProductController

Add butonuna tıkladıktan sonra Controllers klasörü altındaki ProductController.cs dosyasında Index() metotu içeren bir ProductController sınıfı oluşacaktır.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace FirstMVCApplication.Controllers
{
    public class ProductController : Controller
    {
        // GET: Product
        public ActionResult Index()
        {
            return View();
        }
    }
}

Yukarıda görüldüğü gibi ProductController sınıfı, Controller sınıfından türetilir. MVC’de her controller, bu soyut Controller sınıfından türetilmelidir. Bu temel Controller sınıfı, çeşitli amaçlar için kullanılabilen yardımcı metotlar içermektedir.

Şimdiyse ProductController‘ın Index action metodundan geriye bir dummy string döndürelim:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace FirstMVCApplication.Controllers
{
    public class ProductController : Controller
    {
        // GET: Product
        public string Index()
        {
            return "Bu, ProductController'ın Index action metodudur.";
        }
    }
}

Yukarıda görüldüğü üzere Index metodunun geri dönüş tipi ActionResult‘tan string’e değiştirilmiş ve bir dummy string geriye döndürülmüştür.

Uygulamayı çalıştırdığımızda http://localhost/product/index sayfasında oluşan tarayıcı görüntüsü aşağıdaki gibi olacaktır:

Uygulamayı çalıştırdıktan sonra http://localhost/product/index sayfasına ait tarayıcı görüntüsü
Şekil 5: http://localhost/product/index Sayfasında Oluşan Tarayıcı Görüntüsü
Hatırlanması Gereken Noktalar
1. Controller, gelen URL isteklerini işler. MVC’de yönlendirme, istekleri URL ve yapılandırılmış yollara bağlı olarak uygun olan controller ve action metoduna gönderir.
2. Controller sınıfındaki tüm public metotlar, action metotlar olarak adlandırılır.
3. Controller sınıfı, System.Web.Mvc.Controller sınıfından türetilmelidir.
4. Controller sınıf adı, “Controller” ile sonlanmalıdır.
Devamını oku

Popüler

error: Content is protected !!