Myślę, że tytuł w dużym stopniu to podsumowuje:
Jaka jest różnica między RouteLink()
i ActionLink()
w ASP.NET MVC?
tj. kiedy używasz Html.RouteLink()
i kiedy używasz Html.ActionLink()
w swoim Widoku?
.net
asp.net-mvc
html-helper
actionlink
routelink
Chłopak
źródło
źródło
W rzeczywistości wynik obu metod jest taki sam, ale jest generowany na nieco inne sposoby:
Html.ActionLink()
ułatwia szybkie generowanie ActionLink i zapewnia podstawową kontrolę nad tym, co jest renderowane. Jeśli nie masz zbyt wielu tras lub nie musisz podawać zbyt wielu lub zbyt szczegółowych informacji, to wystarczy.Html.RouteLink()
Metoda trwa nieco inne argumenty, a tym samym daje nieco bardziej szczegółową kontrolę nad tym, jakimi rzeczy są obsługiwane. Zwykle używam tej metody, gdy mój scenariusz jest trochę bardziej skomplikowany lub gdy mam bardziej szczegółową strukturę tras.Jednym z przykładów jest niedawny projekt, w którym (ze względu na elastyczność) miałem raczej kilka różnych tras, z których wszystkie były dość proste, niż jedną złożoną, która pozwalałaby na wiele informacji. W rezultacie otrzymałem cztery lub pięć tras dla tego samego kontrolera, wszystkie z określoną akcją domyślną. Przeważnie korzystałem z
RouteLink
wersji, ponieważ kiedy podałem nazwę trasy, domyślne parametry zostały wprowadzone automatycznie.Używaj ich tak, jak chcesz i gdy mają sens dla twojego projektu. Żadna z nich nie ma żadnych zalet ani wad (nie dorównuje jej żadna inna ...).
źródło
Oprócz innych podanych tutaj odpowiedzi, RouteLink jest nieco szybszy i nigdy nie może dopasować niewłaściwej trasy, ponieważ zmieniłeś tablicę routingu.
źródło
RouteLink przyjmuje nazwę trasy, więc jeśli nazwy tras są wiarygodne i dość unikalne, będzie to takie samo, nawet jeśli nazwa akcji, która ma zostać użyta, ulegnie zmianie. Zamiast tego łącze ActionLink prowadzi do określonej akcji określonego kontrolera. Używam obu w moich widokach, w zależności od tego, jakiego rodzaju linku szukam!
źródło