WebApi传参总动员(二)】的更多相关文章

上篇,从最简单的string入手.本篇演示了从请求的输入流中获取实体.api: public class ValuesController : ApiController { [HttpPost] public string GetData(string name) { return "我爱" + name; } [HttpPost] public string GetData() { var stream = HttpContext.Current.Request.InputStre…
前文介绍了Form Data 形式传参,本文介绍json传参. WebApi及Model: public class ValuesController : ApiController { [HttpPost] public string GetData(string name,[FromBody]Woman woman) { return "我是" + name + ",我喜欢" + woman.Name; } [HttpPost] public string Ge…
目前自己的工作和WebApi相关,免不了传入.接收参数.以前的老办法是从请求流中获取json,再反序列化,这中间有2个不能控制的地方,一个是流,一个是反序列化,都需要try,总感觉非常的不爽.因此对WebApi传参做了深入的研(bai)究(du). 正常的WebApi有三种接收参数的方式: 1.以json字符串的形式传入.从请求的输入流获取传入的json字符串,再反序列化成自己需要的实体.利用的是Request.InputStream. 2.以url传参的形式传入.WebApi自动转换成对应的实…
上篇介绍了如何从输入流中获取实体对象.本篇介绍以url形式传递参数.简单的参数不再赘述,这里主要实现形如(string name,Woman woman)这样的参数传递. 本篇及后面几章均涉及js调用及C#调用,而且篇幅较长,请大家见谅. 一.js调用. WebApi: public class ValuesController : ApiController { [HttpPost] public string GetData(string name,Woman woman) { return…
上回说到涉及多个实体的传参,用常规的方法已经不能解决了.这回我们用终极大招搞定她. WebApi:注意要引用JSON.Net [HttpPost] public string GetData(string name,JObject obj) { dynamic json = obj; //获得动态对象 JObject womanJson = json.woman; //获取动态对象中子对象 JObject sonJson = json.son; var woman = womanJson.ToO…
本以为系列文章已经Over,突然记起来前面留了个大坑还没填,真是自己给自己挖坑. 这个坑就是: (body 只能被读取一次)Only one thing can read the body MVC和WebAPI之间的一个关键不同点在于MVC缓存请求主体(request body).这意味着MVC的参数绑定可以反复从body中查找参数片断.然而,在WebAPI中,请求主体(HttpContent) 只能被读取一次,不被缓存,只能向前读取的流.这意味着parameter binding需要谨慎对待s…
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.  学无止境,精益求精    上一节讲述了C# WebApi传参之Get请求-AJAX 本节讲述C# WebApi传参之Post请求-AJAX,说起Ajax针对webApi的Post请求,真的不敢恭维,确实比较怪异,如果你不幸要写一个Ajax Post请求webApi接口,那么您还是有必要花点时间看看本篇博客,如果你也遇到了同样的问题,就不妨在最后给本篇博客点个赞.谢谢 说…
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.  学无止境,精益求精    在介绍本篇博客之前,先来温故下AJax的请求,直接上别人的介绍,勿怪. 如下: jquery中的ajax方法参数总是记不住,这里记录一下.    1.url:    要求为String类型的参数,(默认为当前页地址)发送请求的地址.    2.type:    要求为String类型的参数,请求方式(post或get)默认为get.注意其他ht…
1.GET请求传递参数 URL传参:http://localhost/ApiTest/test?id=1 API接收参数 [HttpGet] public string GetUser(int id) { return "User:" + id; } 传递JSON对象: $.ajax({ type: "get", url: "http://localhost/ApiTest/test", contentType: "applicatio…
本篇打算通过get.post.put.delete四种请求方式分别谈谈基础类型(包括int/string/datetime等).实体.数组等类型的参数如何传递. 回到顶部 一.get请求 对于取数据,我们使用最多的应该就是get请求了吧.下面通过几个示例看看我们的get请求参数传递. 回到顶部 1.基础类型参数 [HttpGet] public string GetAllChargingData(int id, string name) { return "ChargingData"…