Aracılığıyla paylaş


Özel Rotalar Oluşturma (VB)

Microsoft tarafından

ASP.NET MVC uygulamasına özel yollar eklemeyi öğrenin. Bu öğreticide, Global.asax dosyasındaki varsayılan yol tablosunu değiştirmeyi öğreneceksiniz.

Bu öğreticide, bir ASP.NET MVC uygulamasına özel yol eklemeyi öğreneceksiniz. Global.asax dosyasındaki varsayılan yol tablosunu özel bir yolla değiştirmeyi öğreneceksiniz.

ASP.NET MVC uygulamalarında varsayılan yol tablosu düzgün çalışır. Ancak özel yönlendirme gereksinimleriniz olduğunu fark edebilirsiniz. Bu durumda, özel bir yol oluşturabilirsiniz.

Örneğin, bir blog uygulaması oluşturduğunuzu düşünün. Aşağıdakine benzer gelen istekleri işlemek isteyebilirsiniz:

/Arşiv/12-25-2009

Bir kullanıcı bu isteği girdiğinde, 25.12.2009 tarihine karşılık gelen blog girdisini döndürmek istersiniz. Bu tür bir isteği işlemek için özel bir yol oluşturmanız gerekir.

Liste 1'deki Global.asax dosyası, /Archive/entry date gibi görünen istekleri işleyen Blog adlı yeni bir özel yol içerir.

Listeleme 1 - Global.asax (özel rota ile)

Public Class MvcApplication
    Inherits System.Web.HttpApplication
    Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
        ' MapRoute takes the following parameters, in order:
        ' (1) Route name
        ' (2) URL with parameters
        ' (3) Parameter defaults
        routes.MapRoute( _
            "Blog", _
            "Archive/{entryDate}", _
            New With {.controller = "Archive", .action = "Entry"} _
        )
        routes.MapRoute( _
            "Default", _
            "{controller}/{action}/{id}", _
            New With {.controller = "Home", .action = "Index", .id = ""} _
        )
    End Sub
    Sub Application_Start()
        RegisterRoutes(RouteTable.Routes)
    End Sub
End Class

Yol tablosuna eklediğiniz yolların sırası önemlidir. Yeni özel Blog rotamız mevcut Varsayılan rotadan önce eklenir. Sırayı ters çevirdiyseniz, özel yol yerine Varsayılan yol her zaman çağrılır.

Özel Blog yolu /Archive/ ile başlayan tüm isteklerle eşleşir. Bu nedenle, aşağıdaki URL'lerin tümüyle eşleşir:

  • /Arşiv/12-25-2009

  • /Arşiv/10-6-2004

  • /Archive/apple

Özel yol, gelen isteği Arşiv adlı bir denetleyiciyle eşler ve Entry() eylemini çağırır. Entry() yöntemi çağrıldığında, giriş tarihi entryDate adlı bir parametre olarak geçirilir.

Blog özel yolunu, Liste 2'deki denetleyiciyle birlikte kullanabilirsiniz.

Liste 2 - ArchiveController.vb

Public Class ArchiveController
    Inherits System.Web.Mvc.Controller
    Function Entry(ByVal entryDate As DateTime)
        Return "You requested the entry from " & entryDate.ToString()
    End Function
End Class

Listeleme 2'deki Entry() yönteminin DateTime türünde bir parametre kabul ettiğini unutmayın. MVC çerçevesi, URL'den giriş tarihini otomatik olarak bir DateTime değerine dönüştürecek kadar akıllıdır. URL'den giriş tarihi parametresi DateTime'a dönüştürülemiyorsa bir hata oluşur (bkz. Şekil 1).

Şekil 1 - Parametre dönüştürme hatası

Yeni Proje iletişim kutusu

Şekil 01: Parametre dönüştürme hatası (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Özet

Bu öğreticinin amacı, nasıl özel yol oluşturabileceğinizi göstermekti. Blog girdilerini temsil eden Global.asax dosyasındaki yol tablosuna özel bir yol eklemeyi öğrendinsiniz. Blog girdileri için istekleri ArchiveController adlı bir denetleyiciye ve Entry() adlı bir denetleyici eylemine eşlemeyi ele aldık.