Bagaimana saya bisa menggunakan huruf kecil, plus garis bawah jika mungkin, di ASP.NET MVC? Jadi saya harus /dinners/details/2
menelepon DinnersController.Details(2)
dan, jika mungkin, /dinners/more_details/2
menelepon DinnersController.MoreDetails(2)
?
Selama ini masih menggunakan pola suka {controller}/{action}/{id}
.
asp.net-mvc
url
routes
case
J. Pablo Fernández
sumber
sumber
Jawaban:
Dengan System.Web.Routing 4.5 Anda dapat menerapkan ini secara langsung dengan mengatur properti LowercaseUrls dari RouteCollection:
Juga dengan asumsi Anda melakukan ini karena alasan SEO Anda ingin mengarahkan url yang masuk ke huruf kecil (seperti yang dikatakan dalam banyak tautan di artikel ini).
sumber
Dua tutorial ini membantu ketika saya ingin melakukan hal yang sama dan bekerja dengan baik:
http://www.coderjournal.com/2008/03/force-mvc-route-url-lowercase/ http://goneale.com/2008/12/19/lowercase-route-urls-in-aspnet-mvc/
EDIT: Untuk proyek-proyek dengan area, Anda perlu memodifikasi metode GetVirtualPath ():
sumber
Jika Anda kebetulan menggunakan ASP.NET Core, Anda mungkin harus melihat ini :
sumber
Jika Anda menggunakan UrlHelper untuk menghasilkan tautan, Anda cukup menentukan nama tindakan dan pengontrol sebagai huruf kecil:
Hasil dalam: / media / foto / delete / 64 (meskipun controller dan action saya adalah huruf pascal).
sumber
Saya menemukan ini di Coder Journal Nick Berardi , tetapi tidak memiliki informasi tentang cara mengimplementasikannya
LowercaseRoute
kelas. Karenanya reposting di sini dengan informasi tambahan.Pertama memperluas
Route
kelas keLowercaseRoute
Kemudian modifikasi
RegisterRoutes
metode Global.asax.csNamun saya ingin tahu cara menggunakan rute. Peta ...
sumber
routes.MapRouteLowercase(...
mana yang lebih bagus daripada yang di atas: goneale.wordpress.com/2008/12/19/…Anda dapat terus menggunakan sintaks MapRoute dengan menambahkan kelas ini sebagai ekstensi ke RouteCollection:
Sekarang Anda dapat menggunakan startup "MapRouteLowerCase" aplikasi Anda alih-alih "MapRoute":
sumber
LowercaseRoute
kelas dalam cuplikan kode pertama di atas tampaknya berasal dari jawaban lain iniIni sebenarnya memiliki dua jawaban:
Anda sendirian untuk menggarisbawahi, meskipun ...
sumber
Bisakah Anda menggunakan atribut ActionName?
Saya tidak berpikir hal penting. More_Details, more_DETAILS, mOrE_DeTaILs di URL semua membawa Anda ke Aksi Kontroler yang sama.
sumber