Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core TagHelper,用于作为链接的一部分传递路由值_Asp.net Core_Asp.net Core Mvc_Tag Helpers - Fatal编程技术网

Asp.net core TagHelper,用于作为链接的一部分传递路由值

Asp.net core TagHelper,用于作为链接的一部分传递路由值,asp.net-core,asp.net-core-mvc,tag-helpers,Asp.net Core,Asp.net Core Mvc,Tag Helpers,在链接上指定asp控制器和asp操作时,传递id属性的语法是什么 例如,如果我想链接到给定对象的编辑URL,所需的URL将是/user/edit/5 是否有一种方法可以使用TagHelpers来实现这一点,或者我们仍然必须回到@Html.ActionLink()?您可以使用属性前缀asp route-来为路由变量名添加前缀 示例:Edit您可以使用以下代码传递自定义ID: <a asp-controller="User" asp-action="Edit" asp-route-id="@i

在链接上指定
asp控制器
asp操作
时,传递id属性的语法是什么

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


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

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


示例:
Edit

您可以使用以下代码传递自定义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。

我无法实现这一点,因为我的“asp路由foobar”与我的路由不匹配:“routes.MapRoute”(“DearnerOcombo”,模板:“{controller=Home}/{action=Index}/{foobar?}/{whatever1}/{whatever2}”);-路由名称必须匹配。HTH其他。除了上面的注释外,您还需要确保路由设置正确,以避免在HTML中使用MapRoute或方法上的路由注释将路由位作为参数显示。这对我来说肯定比其他的更有意义。您还可以有多个asp路由吗-{参数名}同样?这也有助于解决我的问题,因为它没有正确绑定尝试发送一个外键CompanyId,因为它正在使用Id,并将其放置在主键Id的顺序中。是的,您可以。根据您的需要,您可以使用带有asp路由前缀的属性为任意多个参数指定值。我认为您不能有两个参数同名的eters-这里有一个特性请求/问题,因此如果我读对了,目前有一种方法只能在action helper方法中传递列表,而不能在anchor标记helper中传递列表。我已经更新了我的答案,以显示在anchor标记helper中传递两个参数。这样更好吗?实际上不需要。我当然不知道f当我在寻找关于传回列表的答案时,您链接中使用的术语。