MVC Mimarisinde Routing

MVC Mimarisinde Routing

ASP.NET uygulamasında normalde her url’nin bir aspx dosyası ile eşleşmesi gerekir. ASP.NET, her URL’yi bir dosyayla eşleme gereksinimlerini ortadan kaldırmak için Routing kavramını ortaya koydu.

Route

Rota url ye uygun işleyici bilgisini tanımlar. RouteTable’da gelebilecek her url yapısı için uygun işleyici sınıfı önceden tanımlanır.

Bir Rotayı Yapılandırma

Her MVC uygulamasında en az bir rota bulunmalıdır. Asp.Net uygulamasında App_Start klasörü altında RouteConfig.cs sınıfından MapRoute () metodu ile rotalar belirlenebilir.


public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Student",
            url: "students/{id}",
            defaults: new { controller = "Student", action = "Index"}
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            constraints: new { id = @"\d+" }
        );
    }
} 

Bu örnekte 2 rota tanımlanmış ve bir rota geçersiz sayılmış. İlk rotada Student kontroller sınıfının çalıştırılması için uygun url yapısını rotaya katmış. Genel olarak denetleyici, eylem yöntemi ve id parametresi url modeli kullanılır bunu ikinci rotada görmek mümkün. Burada da {kontrol sınıfı / bu kontrol sınıfında kullanılacak metod / bu metodun alacağı argümanlar} için rota belirlenmiş.

‘constraints’ ifadesi ile de parametrelerde kısıtlamalar yapılabilinir.

Rotaları Kaydetme

Tüm rota tanımlarından sonra Global.asax’taki Application_Start () olayına kaydetmemiz gerekecektir. Böylece uygulama başladığında rota tablosu oluşmuş olur.


public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
            RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
}
Yorum Yap
0 Yorum yapan