WebAPI Selfhost:无法将多个参数绑定到请求的内容
下面的代码被简化以显示必要性。 我可以知道出了什么问题吗? 我似乎无法使用[FromBody]属性检索两个参数(在本例中为A和B)。
错误消息是“无法将多个参数(’A’和’B’)绑定到请求的内容”
如果我只有A或B,那就完全没问题了。
Web API:
[Route("API/Test"), HttpPost] public IHttpActionResult Test([FromBody] int A, [FromBody] int B)
客户:
HttpClient client = new HttpClient(); var content = new FormUrlEncodedContent( new Dictionary { { "A", "123" }, { "B", "456" } }); client.PostAsync("http://localhost/API/Test", content).Result;
我认为Web Api不支持多个[FromBody]参数。 但您可以使用Api模型,将更多参数传递给您的api操作:
public class YourApiModel { public int A{ get; set; } public int B { get; set; } //...other properties }
之后,您可以在API控制器Test中使用它:
// POST: api/test public IHttpActionResult Post([FromBody] YourApiModel model) { //do something }
希望它有所帮助。
尝试Web API代码:
[DataContract] public class Model { [DataMember] public int A { get; set; } [DataMember] public int B { get; set; } } [Route("API/Test"), HttpPost] public IHttpActionResult Test([FromUri] Model model)