Ответ 1
Вы можете использовать префикс атрибута asp-route-
для префикса своих имен переменных маршрута.
Пример: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>
При указании asp-controller
и asp-action
по ссылке, какой синтаксис для передачи атрибута id?
например. Если бы я хотел ссылаться на URL-адрес редактирования для данного объекта, требуемый URL-адрес был бы /user/edit/5
, например.
Есть ли способ достижения этого с помощью TagHelpers, или мы все еще должны вернуться к @Html.ActionLink()
?
Вы можете использовать префикс атрибута asp-route-
для префикса своих имен переменных маршрута.
Пример: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>
Я хотел бы предложить комбинацию двух других ответов, но с небольшим количеством дополнительных разъяснений.
Вы будете использовать префикс атрибута 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>
вы можете передать пользовательский идентификатор, используя код ниже:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>