在ASP.NET MVC 2中,我可以使用默认的ModelBinder对阵列进行测试?
-
10-10-2019 - |
题
在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
并且可以简单地通过逗号分开(,)
不隶属于 StackOverflow