在 ASP.NET MVC 2 中,我可以使用默认的 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 自动反序列化数组/集合?
In ASP.NET MVC 2, you can use this URL and this controller method:
GET http://server/controller/get?id=5
public ActionResult Get(int id)
{
...
}
And the ModelBinder will convert the id=5
querystring to id = (int) 5
in the method parameter. However, this won't work:
GET http://server/controller/get?idlist=1,2,3,4,5
public ActionResult Get(int[] idlist)
{
...
}
idlist
will be null in the parameter. Although the parsing for this is pretty trivial, I was wondering if there is a way to either change the method signature or the querystring in order to make the default ModelBinder automatically deserialize arrays/collections?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用默认的 modelbinder,url 应该是
或
如果你真的想使用 idlist=1,2,3,4,5,你应该有自己的活页夹
With the default modelbinder, the url should be
or
If you really want to use idlist=1,2,3,4,5, you should have your own binder
这就是我的想法:
应该用作
idlist 可以简单地用逗号(,)分割
Here's what I think:
Should be used as
And the idlist can be simply split by comma(,)