69

在链接上指定asp-controllerandasp-action时,传递 id 属性的语法是什么?

例如,如果我想链接到给定对象的编辑 URL,则所需的 URL 将是/user/edit/5例如。

有没有一种方法可以使用 TagHelpers 来实现这一点,还是我们仍然必须退回到@Html.ActionLink()?

4

4 回答 4

105

您可以使用属性前缀asp-route-为您的路由变量名称添加前缀。

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

于 2015-05-04T22:54:47.827 回答
41

我想建议将其他两个答案结合起来,但需要做一些额外的说明。

您将使用属性前缀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>
于 2017-03-05T00:40:04.557 回答
5

您可以使用以下代码传递自定义 ID:

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>
于 2016-11-23T12:40:51.743 回答
0

我建议 Razor 视图使用 jsp 中的 @Html.actionlink 使用模型值的另一种方法

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);

您可以在 jsp 或 jquery 中的任何地方使用 URLvalue。

于 2020-08-24T07:47:13.010 回答