Welche Syntax gibt es, wenn Sie asp-controller
Und asp-action
Für einen Link angeben, um auch ein ID-Attribut zu übergeben?
Z.B. Wenn ich eine Verknüpfung zur Bearbeitungs-URL für ein bestimmtes Objekt herstellen möchte, ist die erforderliche URL beispielsweise /user/edit/5
.
Gibt es eine Methode, um dies mit TagHelpers zu erreichen, oder müssen wir noch auf @Html.ActionLink()
zurückgreifen?
Sie können das Attributpräfix asp-route-
Verwenden, um Ihren Routenvariablennamen ein Präfix zu geben.
Beispiel: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>
Ich würde gerne eine Kombination der beiden anderen Antworten vorschlagen, aber mit ein bisschen mehr Klarheit.
Sie verwenden ein Attributpräfix asp-route-{name}
woher {name}
ist der Name des Routenparameters, den Sie verwenden möchten. Mit anderen Worten, wenn die Nummer 5 in Ihrer Route als ID-Wert an den Controller übergeben wird, können Sie Folgendes haben:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>
oder wenn der Parameter, den Sie an die Route übergeben wollten, item.UserName war
<a asp-controller="User" asp-action="Edit" asp-route-username="@item.UserName">Edit</a>
Und wenn Sie beide Parameter dann hatten
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.Id" asp-route-username="@item.UserName">Edit</a>
sie können eine benutzerdefinierte ID mit folgendem Code übergeben:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>