在实践中,发现一个怪问题
就是定义Post操作的时候 如果不是复合类型的参数 总是接受为NULL
如下面
小弟查了下webapi 参数接受说明
webapi默认以内部类型 string int DateTime等类型的参数是非请求体值
那我要以string作为请求体的值的功能也很常见吧? 那这个不就无解了吗? 不知道webApi为什么设计成这种? 还是我理解错了? 望大神科普下!!
你要post正文带双引号的字符串.并且没有建比如你以为是
{str:"asd"}但实际要传:"asd"
嗯 我也发现这个可以,但是为啥啊?感觉好奇葩的
还有我不是用的Ajax 我用的from表单 这个怎么办呢?
@狂扁小朋友: form表单本来就不支持这种格式.所以webapi推荐用xml/json格式.
你看下你方法里的参数类型就理解了.实体的时候就是keyvalue.你是个字符串类型.当然要传个字符串.
你前端请求怎么写的
<form action="http://localhost:30519/api/Default" method="post"> <input type="text" name="str" value="lxy" /> <input type="submit" value="测试"/> </form>
@狂扁小朋友: 你把str换成name就可以了吧
@balahoho: 试过 不行的
@狂扁小朋友: 把frombody去掉试试
@balahoho: 都试过了
@狂扁小朋友: 还真没试过这种直接表单提交,我一般都是ajax调的,你的问题就是出在表单里的数据没有post过去,同步请求估计不行吧