将asp-route-id与asp-route-all-data相结合

时间:2018-03-22 05:46:51

标签: 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,而不是仅仅使用我的模型。有没有其他(更简单)的方法使这项工作?

1 个答案:

答案 0 :(得分:0)

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

<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
相关问题