webentwicklung-frage-antwort-db.com.de

TagHelper zum Übergeben von Routenwerten als Teil eines Links

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?

41
mattdwen

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>

71
Kiran Challa

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>
22
Alex White

sie können eine benutzerdefinierte ID mit folgendem Code übergeben:

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