gpt4 book ai didi

asp.net-mvc - 使用多值键创建 RouteValueDictionary

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

我想返回一个 RedirectToRouteResult将用户发送到如下所示的 URL:

/MyController/MyAction/id?newid=3&newid=5&newid=7
newid参数有几个值。

我的电话看起来像: return RedirectToAction(string.Empty, routeValues);
这是我迄今为止尝试过的,但不起作用:
// ...?newid%5B0%5D=3&newid%5B1%5D=5&newid%5B2%5D=7
var routeValues = new RouteValueDictionary {
{"id", myid},
{"newid[0]", 3},
{"newid[1]", 5},
{"newid[2]", 7},
};

// ...?newid=System.Int32%5B%5D
var routeValues = new { id = myid, newid = new int[] { 3, 5, 7 } };

// ...?newid=System.String%5B%5D
var routeValues = new { id = myid, newid = new string[] { "3", "5", "7" } };

// ...?newid=System.Int32%5B%5D
var routeValues = new RouteValueDictionary {
{"id", myid},
{"newid", new int[] { 3, 5, 7 } }
};

使这项工作成功的秘诀是什么?

最佳答案

这是框架中真正缺少的一件事。最好的办法是手动滚动它:

public ActionResult Foo()
{
var ids = new[] { 3, 5, 7 };
var url = new UriBuilder(Url.Action("MyAction", "MyController", new { id = "123" }, Request.Url.Scheme));
url.Query = string.Join("&", ids.Select(x => "newid=" + HttpUtility.UrlEncode(x.ToString())));
return Redirect(url.ToString());
}

将其放入自定义扩展方法当然可以提高可读性。

关于asp.net-mvc - 使用多值键创建 RouteValueDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9295180/

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