我无法在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>
Run Code Online (Sandbox Code Playgroud)
在ASP.NET MVC中,它生成了我的网址,例如:
/ Home / List?page = 5&search = abc
在ViewBag.routeValues中,我传递其他参数,例如:search = abc&active = true并将其粘贴到'page'参数之后的 url中。
我认为使用标签帮助程序和“ asp-route”无法做同样的事情-那我该怎么办?
好的-我需要将ViewBag字符串化:
<a href="@(Url.Action((string)ViewBag.actionName, (string)ViewBag.controllerName, new { page = i }) + (string)ViewBag.routeValues)">page i</a>
Run Code Online (Sandbox Code Playgroud)
您应该首先阅读ASP.NET Core文档,以了解什么是标签助手以及如何使用它们。
在ASP.NET Core的Razor实现中,使用了标记助手而不是助手方法。
<a href="@(Url.Action(ViewBag.actionName, ViewBag.controllerName, new { page = i }) + ViewBag.routeValues)">page i</a>
Run Code Online (Sandbox Code Playgroud)
将转化为
<a asp-controller="@ViewBag.actionName" asp-action="@ViewBag.controllerName" asp-route-id = "@i">page i</a>
Run Code Online (Sandbox Code Playgroud)
“ asp-route”可以是路由参数,也可以是查询参数(如果给定操作没有这样的路由参数)。因此asp-route-xyz="abc"会添加?xyz=abc到网址中。
| 归档时间: |
|
| 查看次数: |
6839 次 |
| 最近记录: |