Подтвердить что ты не робот

TagHelper для передачи значений маршрута как часть ссылки

При указании asp-controller и asp-action по ссылке, какой синтаксис для передачи атрибута id?

например. Если бы я хотел ссылаться на URL-адрес редактирования для данного объекта, требуемый URL-адрес был бы /user/edit/5, например.

Есть ли способ достижения этого с помощью TagHelpers, или мы все еще должны вернуться к @Html.ActionLink()?

4b9b3361

Ответ 1

Вы можете использовать префикс атрибута asp-route- для префикса своих имен переменных маршрута.

Пример: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>

Ответ 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>

Ответ 3

вы можете передать пользовательский идентификатор, используя код ниже:

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