web-dev-qa-db-ja.com

リンク値の一部としてルート値を渡すためのTagHelper

リンクで_asp-controller_および_asp-action_を指定する場合、id属性も渡すための構文は何ですか?

例えば。特定のオブジェクトの編集URLにリンクする場合、必要なURLは、たとえば_/user/edit/5_になります。

TagHelpersを使用してこれを実現する方法はありますか、それとも@Html.ActionLink()にフォールバックする必要がありますか?

41
mattdwen

属性プレフィックスasp-route-を使用して、ルート変数名のプレフィックスを付けることができます。

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

71
Kiran Challa

他の2つの答えの組み合わせを提案したいのですが、少し明確にしています。

属性プレフィックスasp-route-{name}を使用します。{name}は、使用するルートパラメーターの名前です。つまり、ルートの5番がID値としてコントローラーに渡される場合、次のようになります。

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

または、ルートに渡したいパラメーターがitem.UserNameの場合

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

そして、両方のパラメーターがあった場合

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

以下のコードを使用してカスタムIDを渡すことができます。

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