Als je asp-controller
en asp-action
opgeeft op een link, wat is dan de syntaxis om ook een id-attribuut door te geven?
Bijvoorbeeld Als ik zou willen linken naar de bewerkings-URL voor een bepaald object, zou de vereiste URL bijvoorbeeld /user/edit/5
zijn.
Is er een methode om dit te bereiken met behulp van TagHelpers, of moeten we nog steeds terugvallen op @Html.ActionLink()
?
Antwoord 1, autoriteit 100%
U kunt het attribuutvoorvoegsel asp-route-
gebruiken om de namen van uw routevariabelen voor te voegen.
Voorbeeld: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>
Antwoord 2, autoriteit 39%
Ik zou een combinatie van de andere twee antwoorden willen voorstellen, maar met een beetje extra verduidelijking.
Je gebruikt een attribuutvoorvoegsel asp-route-{name}
waarbij {name}
de naam is van de routeparameter die je wilt gebruiken. Met andere woorden, als het getal 5 in je route als ID-waarde aan de controller wordt doorgegeven, zou je het volgende kunnen hebben:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>
of als de parameter die u aan de route wilde doorgeven item.UserName was, dan
<a asp-controller="User" asp-action="Edit" asp-route-username="@item.UserName">Edit</a>
En als je beide parameters had,
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.Id" asp-route-username="@item.UserName">Edit</a>
Antwoord 3, autoriteit 5%
u kunt een aangepaste ID doorgeven met de onderstaande code:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>
Antwoord 4
Ik zou nog een manier willen voorstellen voor Razor View om de modelwaarde te gebruiken met @Html.actionlink in jsp
var URLvalue='@Html.ActionLink("UserString", "action", new { routeValueName1 = "__value1__", routeValueName2="__value2__" }, htmlAttributes: new { @class = "btn btn-default", @role = "button" })'
.replace('__value1__', Model.somevalue).replace('__value2__', Model.somevalue);
je kunt URLvalue gebruiken waar je maar wilt in jsp of jQuery.