Есть такая странная ошибка при добавлении api контроллера в работающий проект: собирается, но при старте проекта выдаёт вместо индексной страницы сайта ошибку:
An unhandled exception occurred while processing the request.
InvalidOperationException: Action 'WebApp.Areas.Admin.Controllers.CityApiController.All (WebApp)' has more than one parameter that was specified or inferred as bound from request body. Only one parameter per action may be bound from body.
Inspect the following parameters, and use 'FromQueryAttribute' to specify bound from query, 'FromRouteAttribute' to specify bound from route, and 'FromBodyAttribute' for parameters to be bound from body: Query query CancellationToken cancellationToken
Microsoft.AspNetCore.Mvc.Internal.ApiBehaviorApplicationModelProvider.InferParameterBindingSources(ActionModel actionModel)
Контроллер совершенно рядовой, у меня в другом проекте практически такой же работает без проблем:
public class CityApiController : AdminApiControllerBase
{
public CityApiController(IMediator mediator)
: base(mediator)
{
}
[HttpPost]
public async Task<object> All(Cities.List.Query query, CancellationToken cancellationToken)
{
var result = await this.Mediator.Send(query, cancellationToken);
return result;
}
}
[ApiController]
[Route("api/[controller]/[action]")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class AdminApiControllerBase : Controller
{
public AdminApiControllerBase(IMediator mediator)
{
this.Mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));
}
protected readonly IMediator Mediator;
}
Что это может быть такое? Хочется понять и разобраться. На новичковую ошибку не похоже.
Нашёл любопытный баг на гитхабе: ApiControllerAttribute incorrectly infers CancellationToken parameter as FromBody
В двух словах: поведение для FromBody разнится для 2.0 и 2.1 поэтому необходимо явно выставлять режим совместимости:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
Проект, который не запускался, был как раз проектом 2.0, многократно переделанном и потом переведённом на 2.1
Виртуальный выделенный сервер (VDS) становится отличным выбором
Собираюсь подключить несколько моторчиков, датчиков ,светодиодовНо чтобы все это управлялось напрямую с ноута (без отдельного железа)
Подскажите пожалуйста, создаю байт массив, возникает ошибка на элемент -35
У меня есть допустим программа написанная на c#, и я хочу, чтобы например в интерфейсе программы было подокно которое должно быть уровнем Unity
Как можно осуществить подключение к базе данных Mysql и осуществить запросы? К примеру в PHP я подключаюсь так