У меня есть следующая конечная точка в контроллере, и я хотел бы создать пользовательскую проверку для атрибута, переданного из запроса.
[ApiController]
public class SampleController : ControllerBase
{
[HttpGet]
[Route("api/user")]
public IActionResult GetUsersByLevel(
[BindRequired, ValidLevelFromQuery(Name = "level")] string level)
{
...
}
}
Мой желаемый результат - создание пользовательского атрибута FromQuery
, который в этом примере я описываю как ValidLevelFromQuery
. Пользовательский атрибут будет проверять значение level
и будет принимать только "A", "B", and "C"
, при любом другом значении ответ клиенту будет BadRequest
.
В настоящее время я выполняю проверку после прочтения значения в действии. Моя цель - сделать эту проверку ранее в конвейере запросов.
Я бы хотел, если возможно, не использовать IValidatableObject
.