我不能在asp.net core中使用 @url.action,因为我有错误:
iurlhelper没有名为Action
的适用方法
我想使用 @url.Action:
<a href="@(Url.Action(ViewBag.actionName, ViewBag.controllerName, new { page = i }) + ViewBag.routeValues)">page i</a>
在ASP.NET MVC中,它生成了我的URL:
/home/list?page = 5&amp; search = abc
在viewbag.routevalues中我传递其他参数,例如: search = abc&amp; active = true ,然后将其粘贴到url 之后,'page'page'parame 。
我认为我不能使用标签助手和" ASP -Route"做同样的事情 - 那我该怎么办?
好的 - 我需要Cas Viewbag到字符串:
<a href="@(Url.Action((string)ViewBag.actionName, (string)ViewBag.controllerName, new { page = i }) + (string)ViewBag.routeValues)">page i</a>
您应该首先阅读ASP.NET核心文档,以找出标签助手是什么以及如何使用它们。
在ASP.NET Core的Razor实现中,使用标签助手代替帮助助手方法。
<a href="@(Url.Action(ViewBag.actionName, ViewBag.controllerName, new { page = i }) + ViewBag.routeValues)">page i</a>
会翻译成
<a asp-controller="@ViewBag.actionName" asp-action="@ViewBag.controllerName" asp-route-id = "@i">page i</a>
" asp-route"可以是路由参数或查询参数(如果给定的操作没有这样的路由参数(。因此,asp-route-xyz="abc"
会将?xyz=abc
添加到URL。