Я хотел бы передать объект из моего фильтра контроллеру. Я покажу вам свой код:
Фильтр:
public override void OnActionExecuting(ActionExecutingContext context)
{
var customerRepository = context.HttpContext.RequestServices.GetService<ICustomerRepository>();
var authHeader = context.HttpContext.Request?.Headers["Authorization"].ToString();
if (!Int32.TryParse(authHeader, out int clientId))
{
context.Result = new UnauthorizedResult();
}
var customer = customerRepository.Get(x => x.CustomerId == clientId, typeof(Application).Name);
if (customer == null)
{
context.Result = new UnauthorizedResult();
}
context.ActionArguments.Add("Customer", customer);
}
Контроллер:
[Route("/api/v1.0/startup")]
[IncludeCustomerToHttpContext]
[HttpPatch]
public async Task<IActionResult> Update([FromBody] CustomerChangeViewModel viewModel, Customer customer)
{
...
}
Но при запуске приложения у меня появляется следующая ошибка:
System.ArgumentException: элемент с таким же ключом уже добавлен. Ключ: Клиент
Почему это происходит? Что не так?