如何创建一个ActionLink来保留请求中的参数
本文关键字:请求 保留 参数 ActionLink 何创建 创建 一个 | 更新日期: 2023-09-27 18:14:14
我有一个视图响应动作/Page/Index/{id}
(默认ASP。. NET MVC路由)。视图包含指向具有相同id
的相同操作的操作链接,但在URL中添加了一个参数。我已经把这样的东西放在了适当的位置:
@Html.ActionLink("SetVar1", "Index", new { var1 = "true" } )
@Html.ActionLink("SetVar2", "Index", new { var2 = "true" } )
如预期的那样,点击其中一个链接将我重定向到具有相同id
和参数的相同操作。
Page/Index/{id}?var1=true
然后再次向用户显示上述链接。当然,如果用户再次单击另一个操作链接,则只有新参数。
Page/Index/{id}?var2=true
我想要的是使操作链接保留所有先前传递的参数,并添加一个新的(或替换它,如果它已经在请求中有值)。
Page/Index/{id}?var1=true&var2=true
我该怎么做呢?
重要的是,我没有硬编码所有可能的参数名,我也发现直接对URL进行字符串操作是非常不优雅的。我还应该注意到这些参数是完全相互独立的。
有几种技术可以做到这一点,但是,它们都不是全自动的,你仍然需要明确地告诉ActionLink你想要在ActionLink中做什么。
在stackoverflow上有几个问题描述了相同或类似的问题,你可以看看:
- MVC ActionLink从当前url中添加所有(可选)参数
- ASP。. NET MVC ActionLink keep "old"线路参数