Как я вижу, это будет одна из следующих двух вещей:
- Либо вы не получаете значения StatX, StatY и MeasurementDate прямо в своем коде JavaScript
- Или для вас отсутствуют атрибуты маршрутизации. Метод сообщения
Я покажу вам пример кода, как это можно сделать, поэтому проверьте ваш код, чтобы увидеть, что идет не так.
Итак, сначала я добавлю некоторые тестовые значения в представление Post:
<h2>statistics with ajax</h2>
<dl>
<dt>Stat X</dt>
<dd id="input-statisticsX">2</dd>
<dt>Stat Y</dt>
<dd id="input-statisticsY">3</dd>
<dt>Measurement Date</dt>
<dd id="input-datetime">2018-09-06 00:00:00.000</dd>
</dl>
<a id="submit-button">Statistics</a>
@section Scripts {
<script src="~/js/ajaxTest.js"></script>
}
Затем в файле ajaxTest.js я проверю, получаем ли мы правильные значения из представления:
var value =
{
StatX: 0,
StatY: 0,
MeasurementDate: ""
};
value.StatX = document.getElementById("input-statisticsX").innerHTML;
value.StatY = document.getElementById("input-statisticsY").innerHTML;
value.MeasurementDate = document.getElementById("input-datetime").innerHTML;
$("#submit-button").click(function () {
$.ajax({
url: 'api/statistics ',
type: 'POST',
dataType: "json",
contentType: 'application/json',
data: JSON.stringify(value),
success: function (data) {
location.reload();
}
});
});
И, наконец, в контроллере я напишу метод Post следующим образом:
[Route("api/statistics")]
[HttpPost]
public async Task Post([FromBody] Statistics value)
{
var stats = new List<Statistics>();
stats.Add(value);
// and some other code ...
var _user = await _userManager.GetUserAsync(HttpContext.User);
// ...
}
Готово. Проверьте эти три шага в своем коде, и это все, что касается проблемы с анализом, которая может у вас возникнуть.
Также не уверен, что вы хотите сделать с userManager и user?