I have ASP.NET Web API controller with some actions (methods). Let's say something like this:

```
[HttpPost]
public async Task<ActionResult> SavePerson([FromBody]PersonDto person)
{
    await _mediatr.Send(new SavePerson.Command(person));
    return Ok();
}

```

and the **PersonDto** looks something like this:

```
public record PersonDto([Required, MinLength(3)]string Name, int? Age);

```

When I call my Web API action 'SavePerson' with invalid person data (Name.Length < 3 and etc...), ASP.NET Core model binding validation interrupts the execution and returns 400 (Bad Request) as it should. When I pass valid person data, it works fine.

My questions are:

1. How can I catch this model binding validation result (400 Bad Request) and transform it into different format, so our front-end developers will be happy?
2. Should I validate my DTOs (PersonDto) in Web API layer or it's better to validate it in MediatR command handler? I'm trying to adhere Uncle Bob's Clean Architecture. I have Domain, Application, Infrastructure, Web API. And my MediatR CQRS handlers are placed in the Application layer.