jueves, 3 de febrero de 2011

ActionLink a otro controlador

Curioso, además inesperado. Quiero hacer un enlace desde mi tabla de competiciones a el detalle de puntuaciones de  dicha competición. Las competiciones se generan en CompeticionesController y quiero que llamen a PuntuacionesController, al método Details. Pos ná, miro por encima el porrrón de sobrecargas del helper Html.ActionLink y pongo:
@Html.ActionLink("Puntuar", "Details", "Puntuacion", new { id = item.idCompeticion })

Lo cual provoca un curioso error ya el enlace en vez de llamarme a Puntuación, sigue apuntado a Competicion, además de meterme un parámetro que no es el esperado.

http://localhost/ArcherySystem/Competicion/Details?Length=10

La solución es añadir un quinto parámetro, de los 9 que existen sobrecargados.

@Html.ActionLink("Puntuar", "Details", "Puntuacion", new { id = item.idCompeticion }, null)

Espero que sea de utilidad.

2 comentarios:

Laura dijo...

Me salvaste la vida!!! Me pasaba lo mismo y no encontraba como solucionarlo.
Mil gracias por el aporte!!!
Saludos desde argentina.
Laura.

Anónimo dijo...

Muchas gracias!! No entiendo por qué una cosa tan sencilla no esté mas documentada en los manuales o en la misma web de desarrollo de microsoft.
No estás sólo. Gracias.
Saludos desde Valencia(España)