gpt4 book ai didi

asp.net-mvc - 如何访问 asp.net mvc 中的查询字符串参数?

转载 作者:行者123 更新时间:2023-12-03 07:27:07 25 4
gpt4 key购买 nike

我想对我的 View 应用不同的排序和过滤我想我将通过查询字符串传递排序和过滤参数:

@Html.ActionLink("Name", "Index", new { SortBy= "Name"})

这个简单的结构允许我进行排序。 View 在查询字符串中返回此内容:

?SortBy=Name

现在我想添加过滤,并且希望我的查询字符串以

结尾
?SortBy=Name&Filter=Something

如何将另一个参数添加到 ActionLink 中已有的参数列表中?例如:

user requests /Index/

查看有

 @Html.ActionLink("Name", "Index", new { SortBy= "Name"})

 @Html.ActionLink("Name", "Index", new { FilterBy= "Name"})

链接:第一个看起来像 /Index/?SortBy=Name,第二个是 /Index/?FilterBy=Name

我希望当用户在应用一些过滤后按下排序链接时 - 过滤不会丢失,所以我需要一种方法来组合我的参数。我的猜测是应该有一种方法不解析查询字符串,而是从某个 MVC 对象获取参数集合。

最佳答案

到目前为止,我想到的最好方法是创建 ViewContext.RouteData.Values 的副本并将 QueryString 值注入(inject)其中。然后在每次使用 ActionLink 之前修改它。仍在尝试找出如何使用 .Union() 而不是一直修改字典。

<% RouteValueDictionary   tRVD = new RouteValueDictionary(ViewContext.RouteData.Values); %>

<% foreach (string key in Request.QueryString.Keys )
{
tRVD[key]=Request.QueryString[key].ToString();
} %>

<%tRVD["SortBy"] = "Name"; %>
<%= Html.ActionLink("Name", "Index", tRVD)%>

关于asp.net-mvc - 如何访问 asp.net mvc 中的查询字符串参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/594019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com