Nie jestem pewien, o co pytasz, więc jeśli moja odpowiedź jest błędna, to dlatego, że zgaduję, co chcesz.
Zawsze możesz dodać kolejną trasę do swojej Global.asax
. To często najłatwiejszy sposób radzenia sobie z przypadkami "poza normą".
Jeśli chcesz powrócić listę produktów, będziesz korzystać z tej trasy:
routes.MapRoute(
"ProductList",
"{language}/{products}/{action}/",
new { controller = "Products", action = "List", language = "en" });
Można również wymienić produkty o bardziej ogólne {controller}
jeśli więcej niż jeden typ jednostki zamierza to wykorzystać trasa. Powinieneś zmodyfikować go do swoich potrzeb.
Na przykład, aby zrobić to generic trasy, które można użyć, aby uzyskać listę jakiegokolwiek produktu:
routes.MapRoute(
"ProductList",
"{language}/{controller}/{action}/",
new { controller = "Products", action = "List", language = "en" });
Co to robi jest to, że tworzy trasy (które zawsze należy umieścić przed swoją Default
route), która mówi: "Za cokolwiek użytkownik wejdzie, daj mi kontroler i akcję, o którą prosi". (Takich jak /en/Products/List
lub /en/Users/List
).
Aby odwiedzić ten kontroler, wystarczy przejść do następującego: yoursite.com/en/products/list
. Możesz również użyć HTMLActionLink
, aby odwiedzić kontroler.
<%=Html.ActionLink("Product", "List", new { controller = Products }, null) %>
Piszę to bez mojego IDE otwartym, więc ActionLink
może mieć błąd w nim.
Gdzie to się znajduje? –
W klasie pomocniczej, która rozszerzy UrlHelper – Gregoire
https://stackoverflow.com/questions/8830052/how-do-i-get-the-controller-and-action-names-from-the-referrer-uri –