asp.net-mvc – 如何在web api中创建一个int []参数?
我在我的api上有一堆操作,它们是通用的GetById和GetByIds,它们将实体拉出并通过格式化程序返回.
这些操作如下所示: [HttpGet] [Route("ByIds")] public IHttpActionResult ByIds([FromUri]int[] ids) { var items = _myContext.SomeEntity.Where(a => ids.Contains(a.ID)).ToList(); return SomeFormatter(items); } 如果您使用http:// localhost / api / SomeEntity / ByIds?ids = 1& ids = 2来达到此目的,您将获得一个1和2的数组,如您所期望的那样. 如果你使用http:// localhost / api / SomeEntity / ByIds?ids =你可能希望获得一个空数组,但你得到int [1],其值为0. 我怀疑发生了什么是它将其识别为指定的一个元素,无法转换它,因此使用default(int)并将其放入数组中,这会为您提供一个具有一个值的int数组,值为0. 但是,如果你用http:// localhost / api / SomeEntity / ByIds?ids = potato来点击它,那么你得到一个无效的模型状态,我会自动处理它. 问题是,将空查询参数值映射到空数组或ModelState错误(即,如果提供空值,则与马铃薯行为相同)的方法是什么?我认为模型状态错误是首选,更合乎逻辑. 解决方法
int值为0,因为0与字符串的null相同.如果您希望int的值为null,请使用int?
Basicly: int i = 0 是等价的整数 string myString = null; 如果你想让你的int为null,请使用: int? i = null; 所以会发生什么是数组需要至少一个项目,它不会为该项目分配值.但由于整数的默认值为0,因此它将获得该值 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – MVC 5 Web API与Facebook访问令牌到RegisterExt
- asp.net – 我如何做一个已经内置到dll中的程序集,特别是fl
- C#_.NetFramework_Web项目_NPOI_EXCEL数据导入
- asp.net-mvc – 将带有字符串的json数组发布到Asp.Net MVC动
- asp注入
- asp.net-mvc – 具有ASP.NET MVC的多语言网站
- ASP.NET和Web Tools 2012.2引用LESS文件
- 我是否完全误解了ASP.Net AJAX(更新面板)?
- 用户登录时,ASP.NET Core更改EF连接字符串
- asp.net-mvc-2 – 什么是MapRoute名称空间参数?