Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 yol ile değiştirmeyi öğreneceksiniz.
Birçok basit ASP.NET MVC uygulaması için varsayılan yönlendirme tablosu düzgün çalışır. Ancak, özelleştirilmiş 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
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)
using System.Web.Mvc;
using System.Web.Routing;
namespace MvcApplication1
{
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);
}
}
}
Yol tablosuna eklediğiniz yolların sırası önemlidir. Yeni özel Blog rotamız mevcut Varsayılan rotadan önce eklenir. Sırayı tersine çevirdiyseniz, varsayılan yol her zaman özel yol yerine ç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
/Archive/10-6-2004
/Archive/apple
Özel yol, gelen isteği Arşiv adlı bir denetleyiciye eşler ve Entry() eylemini çağırır. Entry() yöntemi çağrıldığında, giriş tarihi entryDate adlı bir parametre olarak geçirilir.
Liste 2'deki denetleyiciyle Blog özel yolunu kullanabilirsiniz.
Listeleme 2 - ArchiveController.cs
using System;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class ArchiveController : Controller
{
public string Entry(DateTime entryDate)
{
return "You requested the entry from " + entryDate.ToString();
}
}
}
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ı
Ş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. Global.asax dosyasındaki yönlendirme tablosuna blog girdilerini temsil eden ö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.