首页新闻找找看学习计划

为什么WebApi Post String参数总是为NULL?

0
悬赏园豆:5 [已解决问题] 解决于 2016-08-27 15:57

在实践中,发现一个怪问题

就是定义Post操作的时候  如果不是复合类型的参数 总是接受为NULL

如下面

 

小弟查了下webapi 参数接受说明 

webapi默认以内部类型 string int DateTime等类型的参数是非请求体值

 

那我要以string作为请求体的值的功能也很常见吧? 那这个不就无解了吗? 不知道webApi为什么设计成这种? 还是我理解错了? 望大神科普下!!

 

狂扁小朋友的主页 狂扁小朋友 | 初学一级 | 园豆:28
提问于:2016-08-26 18:42
< >
分享
最佳答案
0

你要post正文带双引号的字符串.并且没有建比如你以为是

{str:"asd"}但实际要传:"asd"

收获园豆:5
吴瑞祥 | 高人七级 |园豆:28731 | 2016-08-26 20:32

嗯 我也发现这个可以,但是为啥啊?感觉好奇葩的

还有我不是用的Ajax 我用的from表单 这个怎么办呢?

狂扁小朋友 | 园豆:28 (初学一级) | 2016-08-26 20:33

@狂扁小朋友: form表单本来就不支持这种格式.所以webapi推荐用xml/json格式.

你看下你方法里的参数类型就理解了.实体的时候就是keyvalue.你是个字符串类型.当然要传个字符串.

吴瑞祥 | 园豆:28731 (高人七级) | 2016-08-26 20:39
其他回答(1)
0

你前端请求怎么写的

balahoho | 园豆:2048 (老鸟四级) | 2016-08-26 18:47
  <form action="http://localhost:30519/api/Default" method="post">
          
       <input type="text" name="str" value="lxy" />  
       <input type="submit" value="测试"/>
   </form>
支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-08-26 18:48

@狂扁小朋友: 你把str换成name就可以了吧

支持(0) 反对(0) balahoho | 园豆:2048 (老鸟四级) | 2016-08-26 18:49

@balahoho: 试过 不行的

支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-08-26 18:50

@狂扁小朋友: 把frombody去掉试试

支持(0) 反对(0) balahoho | 园豆:2048 (老鸟四级) | 2016-08-26 18:57

@balahoho: 都试过了

支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-08-26 18:58

@狂扁小朋友: 还真没试过这种直接表单提交,我一般都是ajax调的,你的问题就是出在表单里的数据没有post过去,同步请求估计不行吧

支持(0) 反对(0) balahoho | 园豆:2048 (老鸟四级) | 2016-08-26 19:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册