Bagikan melalui


Membuat Rute Kustom (C#)

oleh Microsoft

Pelajari cara menambahkan rute kustom ke aplikasi MVC ASP.NET. Dalam tutorial ini, Anda mempelajari cara memodifikasi tabel rute default dalam file Global.asax.

Dalam tutorial ini, Anda mempelajari cara menambahkan rute kustom ke aplikasi MVC ASP.NET. Anda mempelajari cara mengubah tabel rute default di file Global.asax dengan rute kustom.

Untuk banyak aplikasi MVC ASP.NET sederhana, tabel rute default akan berfungsi dengan baik. Namun, Anda mungkin menemukan bahwa Anda memiliki kebutuhan perutean khusus. Dalam hal ini, Anda dapat membuat rute kustom.

Bayangkan, misalnya, bahwa Anda sedang membangun aplikasi blog. Anda mungkin ingin menangani permintaan masuk yang terlihat seperti ini:

/Archive/12-25-2009

Ketika pengguna memasukkan permintaan ini, Anda ingin mengembalikan entri blog yang sesuai dengan tanggal 25/12/2009. Untuk menangani jenis permintaan ini, Anda perlu membuat rute kustom.

File Global.asax di Listing 1 berisi rute kustom baru, bernama Blog, yang menangani permintaan yang terlihat seperti /Archive/entry date.

Daftar 1 - Global.asax (dengan rute kustom)

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);
        }
    }
}

Urutan rute yang Anda tambahkan ke tabel rute penting. Rute Blog kustom baru kami ditambahkan sebelum rute Default yang ada. Jika Anda membalikkan pesanan, maka rute Default selalu akan dipanggil alih-alih rute kustom.

Rute Blog kustom cocok dengan permintaan apa pun yang dimulai dengan /Archive/. Jadi, ini cocok dengan semua URL berikut:

  • /Archive/12-25-2009

  • /Archive/10-6-2004

  • /Archive/apple

Rute kustom memetakan permintaan masuk ke pengontrol bernama Arsip dan memanggil tindakan Entry(). Ketika metode Entry() dipanggil, tanggal entri diteruskan sebagai parameter bernama entryDate.

Anda dapat menggunakan rute kustom Blog dengan pengontrol di Daftar 2.

Daftar 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();
        }
    }
}

Perhatikan bahwa metode Entry() di Listing 2 menerima parameter jenis DateTime. Kerangka kerja MVC cukup cerdas untuk mengonversi tanggal entri dari URL menjadi nilai DateTime secara otomatis. Jika parameter tanggal entri dari URL tidak dapat dikonversi ke DateTime, kesalahan akan muncul (lihat Gambar 1).

Gambar 1 - Kesalahan dari mengonversi parameter

Kotak dialog Proyek Baru

Gambar 01: Kesalahan dari mengonversi parameter (Klik untuk melihat gambar ukuran penuh)

Ringkasan

Tujuan dari tutorial ini adalah untuk menunjukkan bagaimana Anda dapat membuat rute kustom. Anda mempelajari cara menambahkan rute kustom ke tabel rute dalam file Global.asax yang mewakili entri blog. Kami membahas cara memetakan permintaan entri blog ke pengontrol bernama ArchiveController dan tindakan pengontrol bernama Entry().