我如何将整数列表添加到路由

2024-05-20

我正在尝试将 int[] 数组添加到我的 Url.Action 中,如下所示:

var routeData = new RouteValueDictionary();

for (int i = 0; i < Model.GroupsId.Length; i++) {
    routeData.Add("GroupsId[" + i + "]", Model.GroupsId[i]);
}

在我看来:

Url.Action("Index", routeData)

但在 html 中我得到:

GroupsId%5B0%5D=1213&GroupsId%5B0%5D=1214

and not:

GroupsId=1213&GroupsId=1214

我需要它,因为我有一个复选框列表,当我发布时,我将 groupIds 绑定到 int[],然后传递到查看我有 Url.Action 的导出按钮,但该按钮对我来说无法正常工作。


由于重复的查询字符串参数名称,您无法使用标准帮助程序生成此类 url。这很不幸,但事情就是这样。

为了生成这样的 url,您可以执行以下操作:

var baseUrl = Url.Action("Index", "SomeController", null, Request.Url.Scheme);
var uriBuilder = new UriBuilder(baseUrl);
uriBuilder.Query = string.Join("&", Model.GroupsId.Select(x => "groupsid=" + x));
string url = uriBuilder.ToString();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何将整数列表添加到路由 的相关文章

随机推荐