刚用webapi,javascript
用$.get时,先后台的请求响应成功了,但在用$.post方法时遇到很多问题。html
后搜到一英文资料,基本反映了个人问题,现摘译以下:java
web api 很好,但post参数问题上,须要用些手段,有三个事你要知道jquery
一、传基本参数进去,必须用【frombody】标注一下web
public string Post(string value)
post函数即便执行,但永远返回null 。(在我这请求时,还必须把Post的action的名称也加上,才执行)sql
$.post('/api/ttt/post',{value:'hshh'})api
二、只能接收一个参数,即不容许多个 [FromBody]框架
“没法将多个参数(“dwdm”和“state”)绑定到请求的内容”函数
“Web API reads the response body at most once, so only one parameter of an action can come from the request body. If you need to get multiple values from the request body, define a complex type.
Web API最多读取响应体一次,所以只有动做的一个参数能够获自请求体。若是须要从请求体获得多个值,须要定义复合类型。”post
三、传入的对象必须是 =value的格式。
大多数的框架都是要key=value,但它却偏不是。 这就是上面永远返回null的缘由。要让它返回值,必须
$.post('/api/ttt/post' ,'='+value)
或
$.post('/api/ttt/post' ,{'':value} )
以上各点是我实战演练过的,看来最新的webapi也没有修改这些问题。不知道项目组当时怎么想的。
总上所述。看来我要用post传参,永远都写一个类包装一下参数吧!
最后OracleCommand的参数绑定时,虽然指定名称,但顺序必须按sql中出现的顺序。坑爹呀,这些项目组咋就很少作些工做解决这些个坑呢, 一群坑爹货!
http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api
我花了些时间看原博文下的留言,太感动人呀! 有献计献策的,也有解释webapi设计目的,简直像到社会主义终极目标同样,是一群苦中求乐,无比融洽的同志们。
最重要的是,他们彷佛都是真名,看来中央的政策是要向国际接轨啦,只有咱们这种乌合之众才喜欢哗众取宠!
附另一博文:http://www.cnblogs.com/r01cn/archive/2012/12/11/2812553.html