[英]In ASP.NET MVC 2, can I deserialize a querystring into an array using the default ModelBinder?
在ASP.NET MVC 2中,您可以使用此URL和此控制器方法:
GET http://server/controller/get?id=5
public ActionResult Get(int id)
{
...
}
并且ModelBinder将在方法参数中将id=5
查询字符串转换为id = (int) 5
。 但是,这不起作用:
GET http://server/controller/get?idlist=1,2,3,4,5
public ActionResult Get(int[] idlist)
{
...
}
idlist
在参数中为null。 虽然对此进行解析非常简单,但我想知道是否有办法更改方法签名或查询字符串以使默认的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
如果你真的想使用idlist = 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
idlist可以简单地用逗号分隔(,)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.