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

发布于 2024-11-15 22:52:56 字数 561 浏览 5 评论 0原文

我正在尝试将 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

而不是:

GroupsId=1213&GroupsId=1214

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

I'm trying to add int[] array to my Url.Action something like this:

var routeData = new RouteValueDictionary();

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

in my view:

Url.Action("Index", routeData)

but in html I'm getting:

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

and not:

GroupsId=1213&GroupsId=1214

I need it because I have a checkbox list, and when I do post I'm binding groupIds to int[] and then pass to view where I have export button with Url.Action that doesn't work correctly for me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薆情海 2024-11-22 22:52:56

由于重复的查询字符串参数名称,您无法使用标准帮助程序生成此类 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();

You cannot generate such url using the standard helpers because of the duplicate query string parameter names. It's unfortunate but it is how things are.

Here's what you can instead in order to generate such 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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文