Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建保留请求参数的ActionLink?_C#_Asp.net Mvc - Fatal编程技术网

C# 如何创建保留请求参数的ActionLink?

C# 如何创建保留请求参数的ActionLink?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个视图响应操作/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}
(默认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
相反,我想要的是使操作链接保留所有以前传递的参数,并添加一个新的(如果请求中已有值,则替换它)

我该怎么做


重要的是,我没有硬编码所有可能的参数名,而且我还发现直接对URL进行字符串操作非常不雅观。我还应该注意到,这些参数是完全独立的。

有几种方法可以做到这一点,但是,没有一种是完全自动的,您仍然需要明确地告诉ActionLink您在ActionLink中想要什么

关于stackoverflow,有几个问题描述了相同或类似的问题,您可以查看:


第一个链接的答案正是我所需要的。非常感谢。
Page/Index/{id}?var1=true&var2=true