在ASP.NET MVC 2中,您可以使用此URL和此控制器方法:

GET http://server/controller/get?id=5

public ActionResult Get(int id)
{
    ...
}

并且模型Binder将转换 id=5 QUERYSTRING id = (int) 5 在方法参数中。但是,这行不通:

GET http://server/controller/get?idlist=1,2,3,4,5

public ActionResult Get(int[] idlist)
{
    ...
}

idlist 参数将无效。尽管对此的解析非常微不足道,但我想知道是否有一种方法可以更改方法签名或Querystring,以使默认的ModelBinder自动避免进行拆除数组/集合?

有帮助吗?

解决方案

使用默认模型宾会者,URL应该是

http://server/controller/get?idlist=1&idlist=2&idlist=3&idlist=4&idlist=5

或者

http://server/controller/get?idlist[]=1&idlist[]=2&idlist[]=3&idlist[]=4&idlist[]=5

如果您真的想使用indlist = 1,2,3,4,5,则应该有自己的活页夹

其他提示

这对聚会有点晚了,但我想做同样的事情。

您可以将单个字符串作为{1,2}传递,并且粘合剂将其绑定到数组

<input name="idlist" type="text" value="{163,162}">

这是我的想法:

public ActionResult Get(int id)
{
   ...
}

应该用作

GET http://server/controller/get/5

并且可以简单地通过逗号分开(,)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top