如上所示,我要在客户端发送两个对象,我是把他们序列化后连起来,在api中用两个参数去接收,会报错,但是如果是一个对象的话就可以,请问像我这种传两个对象的该如何解决。
报Can't bind multiple parameters 这个异常
https://stackoverflow.com/questions/44599041/mvc-web-api-error-cant-bind-multiple-parameters
“The reason for this rule is that the request body might be stored in a non-buffered stream that can only be read once.”
“You need create a model to store the expected aggregated data.”
需要新定义一个实体,包含book和yonghu这两个实体,然后再作为一个参数传过来。
也就是说只能传一个对象参数,像我这样多个的不行?
@偶像之路: 嗯 是的 所以一般别人多个对象的时候 都是合成一个大对象进行传递
@❀七芯海棠❀: 谢谢你呀
{json1:{},json2:{}}
如果你只是要解决这个问题的话就很容易了。
建一个叫 bookandyonghu 的类, 把两个类的数据都放一个类里面。
传两个不行吗
你让他怎么知道哪个是哪个?
那像这种两个对象的能传吗
@偶像之路: 你让他怎么知道哪个是哪个
@吴瑞祥: 客户端: var myyonghu = YesEF.yonghu.Find(3);
var mybook = YesEF.books.Find(Id);
var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var mybookoo = JsonConvert.SerializeObject(new { mybook, myyonghu },Formatting.Indented,jsonSetting);
HttpContent httpContent = new StringContent(mybookoo);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var httpClient = new HttpClient();
var responseJson =httpClient.PostAsync("http://172.168.2.101:8888/api/Charging/GetAllChargingData/", httpContent)
.Result.Content.ReadAsStringAsync().Result;
API: [HttpPost]
public HttpResponseMessage GetAllChargingData(Allbook mybook1)
{
另外在定义一个类: public class Allbook
{
public books mybook { get; set; }
public yonghu myyonghu { get; set; }
}
}
@吴瑞祥: 我这样是可以的