Mewujudkan sistem pengurusan kandungan yang mantap (CMS) sering memerlukan fleksibiliti untuk menentukan laluan penghalaan pelbagai peringkat yang sangat spesifik untuk kawalan pentadbiran. Artikel ini memperincikan penyelesaian yang membolehkan pentadbir untuk menentukan laluan tersuai dengan pelbagai peringkat, seperti "berita/tempatan/mynewdog" atau "artikel/peristiwa/konvensyen/mycon."
Memperluas RouteBase: Kelas CustomPageroute
Untuk mengintegrasikan routing gaya CMS dengan lancar ke dalam aplikasi MVC anda, kami akan membuat subclass
tersuai,. Subkelas ini akan mengatasi kaedah RouteBase
dan CustomPageRoute
untuk mengendalikan logik unik struktur laluan pelbagai peringkat kami. GetRouteData
GetVirtualPath
GetRouteData
Kaedah
dan mengembalikan objek GetRouteData
jika perlawanan laluan dijumpai. Ia merujuk kepada senarai halaman yang telah ditetapkan untuk memeriksa sama ada laluan maya yang diminta (dari permintaan HTTP) wujud. Perlawanan yang berjaya memaparkan objek HttpContextBase
dengan pengawal, tindakan, dan id yang sesuai. RouteData
RouteData
GetVirtualPath
sebaliknya,
dan GetVirtualPath
dan mengembalikan objek RequestContext
. Ia menggunakan senarai halaman yang sama, kali ini sepadan dengan pengawal, tindakan, dan ID dari RouteValueDictionary
. Perlawanan menjana laluan maya tersuai yang sepadan. VirtualPathData
RouteValueDictionary
kelas boleh dipertingkatkan lagi dengan ciri -ciri seperti:
CustomPageRoute
Application_Start
Akhirnya, daftar laluan tersuai anda dalam kaedah aplikasi MVC anda, bersama laluan sedia ada anda.
Application_Start
Kesimpulan
Dengan melaksanakan subclass tersuai, anda mendapat keupayaan untuk menentukan laluan tersuai pelbagai peringkat dalam sistem penghalaan aplikasi MVC anda. Pendekatan ini menawarkan fleksibiliti yang signifikan untuk aplikasi seperti CMSS atau mana -mana senario yang memerlukan struktur jalur hierarki yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan penghalaan tersuai pelbagai peringkat dalam aplikasi MVC saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!