Saya memiliki View bernama Browse.chtml
, di mana pengguna dapat memasukkan istilah pencarian, atau membiarkan istilah pencarian kosong. Saat memasukkan istilah pencarian, saya ingin mengarahkan halaman ke http://localhost:62019/Gallery/Browse/{Searchterm}
dan ketika tidak ada yang dimasukkan, saya ingin mengarahkan browser ke http://localhost:62019/Gallery/Browse/Start/Here
.
Ketika saya mencoba ini, saya mendapatkan kesalahan:
Permintaan saat ini untuk tindakan 'Jelajahi' pada jenis pengontrol 'GalleryController' ambigu di antara metode tindakan berikut: System.Web.Mvc.ActionResult Browse (System.String) pada tipe AutoApp_MVC.Controllers.GalleryController System.Web.Mvc.ActionResult Browse (Int32, System.String) pada tipe AutoApp_MVC.Controllers.GalleryController
Semua yang saya lakukan dengan MVC adalah untuk pertama kalinya. Saya tidak yakin apa lagi yang harus dicoba saat ini.
public ActionResult Browse(string id)
{
var summaries = /* search using id as search term */
return View(summaries);
}
public ActionResult Browse(string name1, string name2)
{
var summaries = /* default list when nothing entered */
return View(summaries);
}
Saya juga punya ini di Global.asax.cs:
routes.MapRoute(
"StartBrowse",
"Gallery/Browse/{s1}/{s2}",
new
{
controller = "Gallery",
action = "Browse",
s1 = UrlParameter.Optional,
s2 = UrlParameter.Optional
});
routes.MapRoute(
"ActualBrowse",
"Gallery/Browse/{searchterm}",
new
{
controller = "Gallery",
action = "Browse",
searchterm=UrlParameter.Optional
});
sumber
return View("Browse", summaries);
Saya tidak tahu kapan pertanyaan itu diajukan, solusi ini tersedia tetapi Anda dapat menggunakan:
Jadi ini seharusnya berfungsi dengan baik untuk masalah Anda:
sumber
Tambahkan kode berikut di RouteConfig.cs sebelum rute default
Dan tambahkan atribut rute di pengontrol seperti:
sumber
Saya pikir poin yang dibuat adalah Anda tidak perlu menguji secara implisit untuk parameter querystring menggunakan kelas permintaan.
MVC melakukan pemetaan untuk Anda (kecuali Anda telah membuat perubahan besar pada rute MVC Anda).
Jadi jalur tautan tindakan
akan secara otomatis tersedia untuk pengontrol (permukaan) Anda dengan parameter yang ditentukan:
MVC melakukan pekerjaannya.
sumber