Я столкнулся со следующим сценарием при испытании ASP.NET Web API2. У меня есть контроллер WebAPI2:
[HttpPost]
[Route("api/service/receiver/{date}")]
public IHttpActionResult receiver([FromUri] string date, [FromBody List<car> cars)
}
Теперь я могу вызвать это с помощью следующего jQuery:
<script>
var carsData = [{ "model": "Audi" }, { "model": "BMW" }, { "model": "Audi" }];
var uri = 'api/service/receiver/20180107';
$.ajax({
type: "POST",
url: uri,
contentType: "application/json; charset=utf-8",
data: JSON.stringify(carsData),
dataType: "json",
success: function (data) {
alert(data);
},
failure: function (errMsg) {
alert(errMsg);
}
});
</script>
Это прекрасно работает, но я понятия не имею, как разместить несколько сложных объектов или, может быть, сложный объект JSON и несколько дополнительных параметров.
Я пытался:
[HttpPost]
[Route("api/service/receiver/{date}")]
public IHttpActionResult receiver([FromUri] string date, [FromBody List<car> cars, [FromBody] List<company> companies)
}
, а также
[HttpPost]
[Route("api/service/receiver/{date}")]
public IHttpActionResult receiver([FromUri] string date, [FromBody List<car> cars, string company)
}
и затем в вызове jQuery я изменил data
строку
data: JSON.stringify({ cars: carsData, companies: compData }),
, а также
data: JSON.stringify({ cars: carsData, company: "theCompany" }),
Но тогда я получаю 404 или ноль. Как это можно сделать?