tag route pass parameter net mvc data asp all asp.net-core asp.net-core-mvc tag-helpers

asp.net-core - route - href mvc razor



TagHelper para pasar valores de ruta como parte de un enlace (3)

Me gustaría sugerir una combinación de las otras dos respuestas, pero con un poco de aclaración adicional.

Utilizará un prefijo de atributo asp-route-{name} donde {name} es el nombre del parámetro de ruta que desea usar. En otras palabras, si el número 5 de su ruta pasa al controlador como un valor de ID, podría tener:

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>

o si el parámetro que deseaba pasar a la ruta era item.UserName, entonces

<a asp-controller="User" asp-action="Edit" asp-route-username="@item.UserName">Edit</a>

Y si tuvieras ambos parámetros, entonces

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.Id" asp-route-username="@item.UserName">Edit</a>

Al especificar asp-controller y asp-action en un enlace, ¿cuál es la sintaxis para pasar también un atributo id?

Por ejemplo, si quisiera enlazar con la URL de edición para un objeto determinado, la URL requerida sería /user/edit/5 .

¿Hay algún método para lograr esto usando TagHelpers, o todavía tenemos que recurrir a @Html.ActionLink() ?


Puede usar el prefijo de atributo asp-route- para prefijar los nombres de las variables de su ruta.

Ejemplo: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>


puede pasar una identificación personalizada usando el siguiente código:

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>