Creo que el título lo resume bastante bien:
¿Cuál es la diferencia entre RouteLink()
y ActionLink()
en ASP.NET MVC?
es decir, ¿cuándo lo usa Html.RouteLink()
y cuándo lo usa Html.ActionLink()
en su Vista?
Creo que el título lo resume bastante bien:
¿Cuál es la diferencia entre RouteLink()
y ActionLink()
en ASP.NET MVC?
es decir, ¿cuándo lo usa Html.RouteLink()
y cuándo lo usa Html.ActionLink()
en su Vista?
La acción y las rutas no tienen por qué tener una relación de 1: 1.
ActionLink generará la URL para llegar a una acción utilizando la primera ruta coincidente por nombre de acción.
RouteLink generará una URL a una ruta específica determinada por el nombre o los valores de la ruta.
En realidad, la salida de los dos métodos es la misma, pero se genera de formas ligeramente diferentes:
Html.ActionLink()
facilita la generación rápida de ActionLinks y le dará un control básico sobre lo que se representa. Si no tiene demasiadas rutas, o no necesita dar demasiada o información demasiado específica, esto funcionará bien.El
Html.RouteLink()
método toma argumentos ligeramente diferentes y, por lo tanto, le brinda un control un poco más detallado sobre la forma en que se manejan las cosas. Tiendo a usar este método cuando mi escenario es un poco más complicado o cuando tengo una estructura de ruta más detallada.Un ejemplo es un proyecto reciente en el que yo (por flexibilidad) preferí tener varias rutas diferentes, todas bastante simples, que una compleja que permitiera mucha información. Por lo tanto, terminé con cuatro o cinco rutas para el mismo controlador, todas con una acción predeterminada especificada. Usé principalmente la
RouteLink
versión, porque cuando especifiqué un nombre de ruta, los parámetros predeterminados se ingresaron automáticamente.Úselos como desee y según tengan sentido para su proyecto. Realmente no hay ventajas o desventajas para ninguno de ellos (que no se compara con otros ...).
fuente
Además de las otras respuestas que se dan aquí, RouteLink es un poco más rápido y nunca puede coincidir con la ruta incorrecta porque cambió su tabla de enrutamiento.
fuente
RouteLink toma el nombre de una ruta, por lo que si los nombres de su ruta son confiables y bastante únicos, será el mismo incluso si cambia el nombre de la acción que se utilizará. ActionLink enlaza a una acción específica de un controlador específico en su lugar. ¡Utilizo ambos en mis vistas, dependiendo del tipo de enlace que busque!
fuente