Lorsque vous spécifiez asp-controller
Et asp-action
Sur un lien, quelle est la syntaxe pour transmettre également un attribut id?
Par exemple. Si je souhaitais créer un lien vers l'URL d'édition d'un objet donné, l'URL requise serait par exemple /user/edit/5
.
Existe-t-il une méthode pour y parvenir en utilisant TagHelpers, ou devons-nous toujours nous replier sur @Html.ActionLink()
?
Vous pouvez utiliser le préfixe d'attribut asp-route-
pour préfixer les noms de variables de votre route.
Exemple: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>
J'aimerais suggérer une combinaison des deux autres réponses, mais avec quelques précisions supplémentaires.
Vous utiliserez un préfixe d'attribut asp-route-{name}
où {name}
est le nom du paramètre de route que vous souhaitez utiliser. En d’autres termes, si le nombre 5 de votre route est transmis au contrôleur en tant que valeur d’ID, vous pourriez avoir:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>
ou si le paramètre que vous vouliez transmettre à la route était item.UserName puis
<a asp-controller="User" asp-action="Edit" asp-route-username="@item.UserName">Edit</a>
Et si vous aviez les deux paramètres alors
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.Id" asp-route-username="@item.UserName">Edit</a>
vous pouvez passer un identifiant personnalisé en utilisant le code ci-dessous:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>