在我的控制器中我有:
[AcceptVerbs("GET", "POST")]
public List<BuzzMonitor.Web.Message> Search(string text, DateTime dateFrom, DateTime dateTo, List<int> themeIds, List<int> sourceIds)
{...}
我想做模型绑定。对于原始类型来说很容易,但是当我有一个原始类型列表时该怎么办?
我在 Global.asax 中这样做了:
GlobalConfiguration.Configuration.Routes.MapHttpRoute("SearchWithParameters", "api/{controller}/{action}/{text}/{dateFrom}/{dateTo}/?/?"
但我不知道要为列表设置什么...
我在某些网站上发现我可以在列表之前添加 [ModelBinder],但是当我这样做时,我只会在该单词上添加红色下划线。
有人知道该怎么做吗?
从您的描述看来您已经找到了这篇文章或类似的文章
http://lostechies.com/keithdahlby/2012/10/04/asp-net-web-api-list-parameter-binding/ http://lostechies.com/keithdahlby/2012/10/04/asp-net-web-api-list-parameter-binding/
建议您使用 ModelBinder 属性。如果你能让它发挥作用,我仍然推荐这种方式。您描述的红色下划线听起来您可能没有适当的参考文献。请确保您的类中有适当的引用来访问该属性,在本例中它看起来像System.Web.Http.ModelBinding
http://msdn.microsoft.com/en-us/library/system.web.http.modelbinding.modelbinderattribute(v=vs.118).aspx http://msdn.microsoft.com/en-us/library/system.web.http.modelbinding.modelbinderattribute%28v=vs.118%29.aspx
如果失败,您可能无法使用模型绑定。从第一篇文章开始
Web API only uses model binding for “simple types”
您还可以考虑使用 JSON Formatter 或类似工具,这并不困难,并且可以轻松支持列表结构以及格式良好的 JSON。
这是一篇很棒的介绍性文章,介绍了如何使用它
http://www.hanselman.com/blog/OneASPNETMakingJSONWebAPIsWithASPNETMVC4BetaAndASPNETWebAPI.aspx http://www.hanselman.com/blog/OneASPNETMakingJSONWebAPIsWithASPNETMVC4BetaAndASPNETWebAPI.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)