ASP.Net VIEWS Tanımlama

Bir önceki yazımızda Views nedir ve nasıl çalışır, anlatmaya çalıştık. Bu yazımızda da View dosyaları nasıl tanımlanır ve nasıl kullanılır, bu konular üzerinde duracağız.
Yeni proje oluşturduğumuzda projenin dizin yapısında Views klasörü vardır. Dizin yapısını incelersek her Controller sınıfı için Views klasörünün altında o Controller adında bir klasör daha vardır.
Ayrıca her Controller sınıfı için tanımlanan Views klasörünün altında ise, Controller sınıfı içerisindeki her metod için bir .cshtml uzantılı Razor sayfaları vardır.

Tüm bunlar birbiri ile arkaplanda (implicit) ilişkilidir. Controller sınıfları Views dosyalarını çağırırken bu ilişkiden yararlanırlar. Varsayılan şablonda Index.cshtml dosyasını çağıran Controller metodunu incelersek;

public class HomeController : Controller 
{
    public ActionResult Index() 
    {
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
        return View();
    }
}

Burada return View(); içerisinde view ismi tanımlanmadığı halde sayfa çağrılır ve Index sayfası görüntülenir. Bunun sebebi arkaplandaki ilişkiden kaynaklanmaktadır. Yani view sayfası için isim belirtmezsek bu ilişkiden dolayı, Controller sınıfı bu metod adı ile aynı olan view sayfasını, Controller ile aynı klasör içerisinde arar.
Controller metod içerisinde başka bir view sayfasınıda çeğırmak isteyebiliriz. Bunu yapmak için aşağıdaki gibi değiştirebiliriz kodu;

public ActionResult Index() 
{
    ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
    return View("NotIndex");
}

Yukarıdaki metod Views/Home/NotIndex.cshtml dosyasını çağıracaktır.