Instradamento degli URL ASP.NET MVC
-
20-08-2019 - |
Domanda
Ho bisogno di un controller separato per il seguito?
http: // localhost / bookmarks - > controller dei segnalibri http: // localhost / bookmark / {bookmarkid} - > controller dei segnalibri
Esiste un modo per combinarli entrambi in un controller? Voglio mantenere lo stesso uri cioè un segnalibro singolare che indica prendere un singolo segnalibro.
Grazie
Soluzione
Supponendo un ambiente di sviluppo C #
Global.asax:
routes.MapRoute(
"Bookmarks",
"bookmarks",
new { controller = "Bookmarks", action = "Bookmarks"}
);
routes.MapRoute(
"Bookmark",
"bookmark/{bookmarkid}",
new { controller = "Bookmarks", action = "Bookmark" }
);
BookmarksController:
public ActionResult Bookmarks()
{
//Get all bookmarks, I presume. :)
return View();
}
public ActionResult Bookmark(string bookmarkid)
{
//Do stuff with the bookmark id
return View();
}
Usando questo schema di routing, http: // localhost / bookmarks colpirà l'azione Segnalibri nel controller Segnalibri e http: // localhost / bookmark / 123456 eseguirà l'azione Segnalibro nel controller Segnalibri.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow