ProAkademi.NET
 
 Web Programlama Web Programlama
 Programlama Programlama
 Grafik Grafik
 Veri Tabanı Veri Tabanı
 İşletim Sistemleri İşletim Sistemleri
 Network Network
 Donanım Donanım
 Güvenlik Güvenlik
 Genel Konular Genel Konular
  KATEGORİLER
 
Kullanıcı Adı :
Şifre :
  ÜYE GIRISI
 
 
  Hakkımızda
  Forum
  Blog
  Haberler
  İpuçları
  Destekleyenler
  İletişim
  PROAKADEMİ.NET
 
Son Üye : altintakipci
Kayıtlı Üye : 521
  İSTATİSTİKLER
 
 
Ana Sayfa > Makale > Web Programlama > ASP.NET
 
ASP.NET MVC - Kendi Route Table mızı Oluşturma
 
Artık yavaş yavaş hızlanma zamanı geldi. Bu yazımda ASP.NET MVC uygulamada kendi route yapımızı oluşturmayı ve Standart ayarların olduğu Global.asax dosyasına hakim olup nasıl değiştirebileceğimizi öğreneceğiz.
 

ASP.NET MVC uygulamalarındaki varsayılan route table yapısı çoğu örnekle çok güzel çalışmaktadır. Ama sizin için bu yapı her zaman doğru sonucu vermez ve sizde ihtiyaçlarınız doğrultusunda kendi route table oluşturmak zorunda kalırsınız.

Hayal edin , bir blog hazırladınız ve tarihsel olarak blog yazılarınızı görüntülemeniz lazım :
/Archive/12-25-2009

Bunun için Global.asax dosyasına birkaç değişiklik yapmamız gerekiyor. Kullanıcının karşısına hata ekranı düşmesini istemiyorsak.

using System.Web.Mvc;

using System.Web.Routing;

namaspace CustomRouteMakale

{

    Public class MvcApplication : System.Web.HttpApplication

    {

        Public static void RegisterRoutes(RouteCollection routes)

        {

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(

               "Blog",                                              // Route name

               "Archive/{entryDate}",                           // URL with parameters

               new { controller = "Archive", action = "Entry" }  // Parameter defaults

           );

            routes.MapRoute(

                "Default",                                              // Route name

                "{controller}/{action}/{id}",                           // URL with parameters

                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults

            );                   

        }

        protected void Application_Start()

        {

            RegisterRoutes(RouteTable.Routes);

        }

    }

}

Route Table yerleştirirken Global.asax dosyasında ki sıra çok önemlidir. Bu sebepten yazdığımızı Table varsayılan Table dan önce yazmanız gerekmektedir. Eğer sıralamaya dikkat etmeden yazarsanız istekler varsayılan able üzerinden döner.

Yazdığımız route table için istekler /Archive/ kısmı ile başlar ve aşağıdaki gibi şekillenebilir.

/Archive/12-25-2009
/Archive/10-06-2009
/Archive/apple

Yukarıda yazdığımız Route Table da istekler Controller içindeki Archive classının içindeki Entry fonksiyonunda çözümlenmektedir.
Bu kodu yazmadan önce sol taraftaki solution explorera gelip controller klasörü üzerinde sağ tuş deyip add controller deyip controller ismini ArchiveController veriyoruz.

    Public class ArchiveController : Controller

    {

        Public string Entry(DateTime entryDate)

        {

            return "You requested the entry from " + entryDate.ToString();

        }

    }

Unutulmaması gereken bir nokta Entry Fonksiyonu sadece DateTime tipinden bir değer kabul eder ve gelen Url deki değeri Convert edemez.

SONUÇ

Makalemizin sonucunda Global.asax dosyamızı nasıl güncellediğimizi, Blog senaryosu üzerinden ne gibi değişikler yaptığımızı ve ArchiveController.cs tarzı bir class içinde neler olabileceğini gördük. Bir sonraki makalemizde Route Table üzerindeki kısıtları inceleyip , nasıl düzeltebileceğimizi öğreneceğiz.

Volkan KORKMAZ
Microsoft Certified Business Management Solutions Specialist
volkankorkmaz@gmail.com
http://www.volkankorkmaz.net

 
Etiketler: asp.net mvc route table global.asax
 
Yazar: Volkan Korkmaz
Tarih: 23.04.2009 19:35:34 | Okuma: 3170 | Oy: 2,8

EkleBunu Sosyal Paylaşım Butonu

Eklenmiş yorum bulunmuyor!

Yorum Ekle
Yorum eklemek için kayıtlı üye olmanız gerekiyor! Üye olmak için tıklayınız.

 
Copyright 2008 ProAkademi.NET (v 1.4) - Tüm hakları saklıdır.
Tasarım: Hüseyin YILDIRIM [AriSToR] // ZirveArt
Clicky Web Analytics
 
 
Buluton Yazilim ve Internet Hizmetleri