У меня следующая проблема. Всякий раз, когда я отправляю что-то своей конечной точке Api, ASP. NET Core 3.1 не может обработать запрос. Однако, когда я добавляю атрибут ApiController
, он прекрасно работает.
Мой код правильный, но работает только при добавлении этого атрибута. Как это так?
Для справки, вот мой код
API
[ApiController] //Remove this and the code breaks
[Route("api/SomeApi")]
public class ApiController : Controller {
private readonly IService service;
public ApiController(IService service)
{
this.service = service;
}
[HttpPost]
[Route("Add")]
public SomeClass Add(SomeClass foo)
{
var userId = service.GetCurrentUserId(User);
foo.Id = Guid.NewGuid();
foo.UserId = userId;
service.Add(foo);
return foo;
}
}
JS
axios.post('/api/SomeApi/Add', {
foo: this.foo,
}).then(function (response: any) {
this.Id = response.Id;
});
К вашему сведению, у меня есть другие методы на моем ApiController с помощью GET / POST. GET работают отлично, но методы POST работают только когда я использую параметры запроса. В этом случае я не использовал параметры запроса, потому что у меня больше данных для отправки в Api, чем на самом деле указано в примере.
Я уже пытался получить свой ответ, используя [FromBody]
. Это не работает. Я вместо этого получил ноль. foo
даже не был создан.