C# WebApi 接口传参详解

2019-12-30 19:52:13于丽

$.ajax({
    type: "get",
    url: "http://www.easck.com/>

由上图可知,在get请求时,我们直接将json对象当做实体传递后台,后台是接收不到的。这是为什么呢?我们来看看对应的http请求

C#,WebApi,接口,传参

原来,get请求的时候,默认是将参数全部放到了url里面直接以string的形式传递的,后台自然接不到了。

原因分析:还记得有面试题问过get和post请求的区别吗?其中有一个区别就是get请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),而post请求则是放在http协议包的包体中。

根据园友们的提议,Get请求的时候可以在参数里面加上[FromUri]即可直接得到对象。还是贴上代码:


var postdata = { ID: "1", NAME: "Jim", CREATETIME: "1988-09-11" };
  $.ajax({
    type: "get",
    url: "http://www.easck.com/>

如果你不想使用[FromUri]这些在参数里面加特性的这种“怪异”写法,也可以采用先序列化,再在后台反序列的方式。


$.ajax({
    type: "get",
    url: "http://www.easck.com/pre>


	

[HttpGet]
    public string GetByModel(string strQuery)
    {
      TB_CHARGING oData = Newtonsoft.Json.JsonConvert.DeserializeObject<TB_CHARGING>(strQuery);
      return "ChargingData" + oData.ID;
    }

C#,WebApi,接口,传参