用于将路由值作为 link 的一部分传递的 TagHelper
TagHelper for passing route values as part of a link
在 link 上指定 asp-controller
和 asp-action
时,同时传递 id 属性的语法是什么?
例如例如,如果我想 link 编辑 URL 给定对象,所需的 URL 将是 /user/edit/5
。
是否有使用 TagHelpers 实现此目的的方法,还是我们仍然必须退回到 @Html.ActionLink()
?
您可以使用属性前缀 asp-route-
作为路由变量名称的前缀。
示例:<a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>
您可以使用以下代码传递自定义 ID:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">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>
我建议 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。
在 link 上指定 asp-controller
和 asp-action
时,同时传递 id 属性的语法是什么?
例如例如,如果我想 link 编辑 URL 给定对象,所需的 URL 将是 /user/edit/5
。
是否有使用 TagHelpers 实现此目的的方法,还是我们仍然必须退回到 @Html.ActionLink()
?
您可以使用属性前缀 asp-route-
作为路由变量名称的前缀。
示例:<a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>
您可以使用以下代码传递自定义 ID:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">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>
我建议 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。