在ASP.NET MVC 4中以querystring传递数组的统一方式

时间:2013-06-13 12:50:15

标签: asp.net-mvc routing query-string model-binding

我有一个控制器的动作:

public ActionResult Find(IEnumerable<string> ids) { ... }

我通过路由../Find?ids=01&ids=02&ids=03成功调用它。 DefaultModelBinder可以轻松绑定参数,无需额外配置。 但是,当我尝试出站路由时,即在我的视图中使用这样的代码

@Url.Action("Find", "Grid", new {ids=new List<string>{01,02,03}})

..我的网址中有一个很好的..?ids=System.Collections.Generic.List1[System.String]查询字符串。我已经找到了一些建议编写自定义绑定/路由的答案,但我相信这样一个简单的任务应该在没有任何额外代码的情况下更容易解决。

PS:我非常乐意改变我的查询字符串格式,我只想依靠一些默认的框架行为来完成任务:传入一个数组查询字符串。


简短版本:使用查询字符串中的数组呈现控制器操作链接的最简单方法是什么?

1 个答案:

答案 0 :(得分:5)

它不是优雅的方式......但简单而快速。尝试

@Url.Action("Find", "Grid", new {ids= string.Join("&ids=", YourList)})