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 - Routing Giriş
 
Bu yazımda sizlere ASP.NET MVC uygulamaları için önemli olan ASP.NET Routing konusundan söz edeceğim.
 

ASP.NET Routing Modülü özelliği ASP.NET MVC uygulamasına gelen tarayıcı isteklerini haritalamaktır. Bu yazının sonunda standart Routing tablo haritalarının kontroller için nasıl kullanıldığını öğrenmiş olacağız.

STANDART ROUTE TABLE KULLANIMI

Yeni bir ASP.NET MVC uygulaması oluşturduğunuz zaman uygulama otomatik olarak ASP.NET Routing için yapılandırılmış olarak oluşmaktadır.. ASP.NET Routing işlemi 2 yerde kontrol altında tutulur.
İlk olarak, ASP.NET Yönlendirme başvurunuzu Web yapılandırma dosyası(Web.config dosyası) etkinleştirilmiştir.Bu yönlendirme Web.Config dosyasında 4 sectionda yer alır:

* system.web.httpModules
* system.web.httpHandlers
* system.webserver.modules
* system.webserver.handlers

Bu sectionları silerken çok dikkatli olun yoksa uygulamanız çok uzun süre dayanamaz.
İkinci ve daha önemlisi, bir rounting tablosu uygulamanın Global.asax dosyasında oluşturulacaktır. Global.asax dosyası, ASP.NET uygulamalarının yaşam olaylarını içeren özel bir dosyadır. Routing tablosu Application Start olayında oluşmaktadır.

Global.asax Dosyası

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.Web.Routing;

namespace MvcMakale

{

    Public class MvcApplication : System.Web.HttpApplication

    {

        Public static void RegisterRoutes(RouteCollection routes)

        {

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

            routes.MapRoute(

                "Default",                                              // Route Adı

                "{controller}/{action}/{id}",                           // URL Parametreleri

                new { controller = "Home", action = "Index", id = "" }  // Standart Parametreler

            );

        }

        protected void Application_Start()

        {

            RegisterRoutes(RouteTable.Routes);

        }

    }

}

MVC uygulamamız ilk çalıştığında , Application Start fonksiyonu çağrılır. Bu method RegisterRoutes fonksiyonu çağırarak , route tablosunu oluşturur.
Standart Route tablosu sadece bir tane route içerir. Standart route tablosuna bakıldığında ilk segment url controller adını, ikincisi url nin action kısmını ve son bölümde parametreyi gösterir.

Web tarayıcınızın adres çubuğuna aşağıdaki URL yi girdiğinizi hayal edin:

/Home/Index/3

Standart Route haritalar için de aşağıdaki parametreler için bu URL:

controller = Home
action = Index
id = 3

Ne zaman URL /Home/Index/3 şeklinde olursa, aşağıdaki kodu isteği çalıştırılır:

HomeController.Index(3)

Birkaç örnek bakarak varsayılan route haritalarının nasıl URL leri kontrol işlemlerinde kullanıldığını inceleyelim.Tarayıcınızın adres çubuğuna aşağıdaki URL yi girdiğinizi varsayın:
/Home
Bu url yi yazdığınızda varsayılan HomeController.cs içindeki Index() fonksiyonunu çağıracaktır

HomeController.cs

using System.Web.Mvc;

namespace MvcApplication1.Controllers

{

    [HandleError]

    Public class HomeController : Controller

    {

        Public ActionResult Index(string id)

        {

            return View();

        }

    }

}

HomeController class ı içinde Index() method u sadece tek bir parametre alabilir. /Home Url sini yazdığımız zaman Index() parametre almadan da değeri çağırabiliriz. Eğer bu tanımlamayı class ımızda düzenlemezsek MVC Framework hata vericektir.

HomeController.cs(Index Methodu Parametresiz)

using System.Web.Mvc;

namespace MvcApplication1.Controllers

{

    [HandleError]

    Public class HomeController : Controller

    {

        Public ActionResult Index()

        {

            return View();

        }

    }

}

Index() methodu bazen parametre kabul etmeyebilir. Bu tarz uygulamalarda parametrenin uygulama dışı olduğunu belirtmek için kodu aşağıdaki gibi düzenlememiz gerekmektedir.

HomeController.cs

using System.Web.Mvc;

namespace MvcApplication1.Controllers

{

    [HandleError]

    Public class HomeController : Controller

    {

        Public ActionResult Index(int? id)

        {

            return View();

        }

    }

}

Index() Methoduna integer bir parametre geldiğinde de HomeController kodunu aşağıdaki gibi güncellememiz gerekir. Eğer bu tanımlamayı gerçekleştirmezseniz resimdeki gibi bir ekranla karşılaşırsınız.

HomeController.cs(Index Methodu Parametreli)

using System.Web.Mvc;

namespace MvcApplication1.Controllers

{

    [HandleError]

    Public class HomeController : Controller

    {

        Public ActionResult Index(int id)

        {

            return View();

        }

    }

}

SONUÇ

Bu yazımızda ASP.NET MVC Routing olayına bir giriş yaptık. ASP.NET MVC uygulamalarında URL den gelen değerlerin nasıl bir yol izleyeceğinin haritasını oluşturduk. Bundan sonraki yazımızda kendi Routing haritamızı nasıl oluşturacağımızı öğreneceğiz.

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

 
Etiketler: asp.net mvc routing
 
Yazar: Volkan Korkmaz
Tarih: 23.04.2009 19:29:19 | Okuma: 3617 | Oy: 0

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