gpt4 book ai didi

asp.net-mvc-3 - 将数组传递给 RouteValues 并让它呈现模型绑定(bind)器友好的 url

转载 作者:行者123 更新时间:2023-12-04 00:57:05 26 4
gpt4 key购买 nike

当通过 RouteValueDicitonary或匿名对象到 @Url.Action 方法(或其任何类似物)中,有没有办法正确传递集合对象或 IEnumerable以便它生成一个与默认模型绑定(bind)器兼容的 url?

例如,假设我有这样的 Action :

public ActionResult Index(ICollection<int> ids)
{
...do something
}

在我的模板中,我做了这样的事情:
@Url.Action("Index", routeValues:new int[]{1,2,3})

目标是有一个这样的 url 输出:
... /index?ids=1&ids=2&ids=3

但 url 输出实际上是这样的:
... /index?ids=System.Int[]

我假设目前没有对此的支持。如果不是,那么我需要在 MVC 的哪个部分创建自定义处理程序或其他任何内容来覆盖此默认功能?

最佳答案

不幸的是,目前没有现有的帮助程序可以让您生成这样的 url。所以一种可能性是手动完成:

@(Url.Action("Index") + "?" + string.Join("&", new int[] { 1, 2, 3 }.Select(x => "ids=" + x)))

或者写一个扩展方法来封装逻辑:
@Url.ActionWithIds("Index", new int[] { 1, 2, 3 })

由于这些是整数,我们不需要 url 编码,但如果你想对字符串集合做同样的事情,那么值应该正确 url 编码。

关于asp.net-mvc-3 - 将数组传递给 RouteValues 并让它呈现模型绑定(bind)器友好的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8391055/

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