asp.net-mvc - 结合 asp-route-id 和 asp-route-all-data

标签 asp.net-mvc asp.net-core-mvc razor-pages asp.net-core-tag-helpers

有什么办法可以使这项工作?

<a class="btn btn-info" asp-action="ActionName" asp-route-id="@item.ID"
                       asp-all-route-data="parms" >Action</a>

这会生成以下链接:
sitename.com/controller/action?parm1=parm1&parm2=parm2

等我希望它生成这个:
sitename.com/controller/action/{id}?parm1=parm1&parm2=parm2

似乎您无法将 route-id 与 asp-route-all-data 结合使用。它是一个表上的链接,所以我的 ID 随每一行而变化,其余的过滤器(搜索字符串、页面、排序等)不会改变。如果这行得通,将节省大量的复制和粘贴。

在写这篇文章时,我意识到我可能可以使用项目字典和我的模型的 IEnumerable 创建一个 Viewmodel,而不仅仅是按原样使用我的模型。有没有其他(更简单的)方法可以使这项工作?

最佳答案

将“asp-all-route-data”属性放在“asp-route-id”之前可以解决问题。

<a class="btn btn-info" asp-action="ActionName" 
        asp-all-route-data="parms"             
        asp-route-id="@item.ID">Action</a>

并生成以下链接:
sitename.com/controller/action/{id}?parm1=parm1&parm2=parm2

关于asp.net-mvc - 结合 asp-route-id 和 asp-route-all-data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49421394/

相关文章:

asp.net-mvc - MVC 的默认 _ChangePasswordPartial View 模型

asp.net - Razor 不会自动为 View 创建共享文件夹?为什么不?

asp.net - 在 Redis 缓存中存储 5000 多条记录

c# - 如何将参数传递给 RazorPage OnGet()?

c# - 如何在 asp.net Core Razor Pages 中填充复选框列表?

asp.net - 如何在 ASP.NET CORE Razor Pages 中创建共享表单?

c# - 如果另一个绝对位置已经在该位置,是否可以移动绝对位置?

c# - 我应该在哪里放置我的域模型以查看模型映射代码?

asp.net-core - .Net CORE Dapper 连接字符串?

c# - 是否有比使用 IAsyncActionFilter 授权更好的方法来授权用户是否处于角色或用户 ID 在数据库中以获取特定记录